2024-08-16

journalctl 是一个命令行工具,用于查看 systemd 的日志系统中的日志。systemd 是 Linux 系统的一个初始化系统,负责系统的启动和管理系统进程。journalctl 可以用来查看由 systemd 管理的所有单元的日志,包括系统守护进程(如 sshdhttpd)、服务和自定义进程。

基本用法如下:

  • 查看所有日志:journalctl
  • 查看特定服务的日志,如 sshdjournalctl -u sshd
  • 实时滚动查看最新日志:journalctl -f
  • 查看特定时间段的日志:journalctl --since "2021-01-01 00:00:00" --until "2021-01-02 00:00:00"
  • 显示最后N行日志:journalctl -n 50
  • 以分页方式显示日志:journalctl -f -o verbose
  • 以json格式查看日志:journalctl -o json
  • 查看指定PID的进程日志:journalctl _PID=1234
  • 查看指定用户的进程日志:journalctl _UID=1234

这些是 journalctl 的基本用法,实际使用时可以根据需要选择合适的参数。

2024-08-16

在Linux中,tar命令用于创建、维护、修改和提取tar文件。以下是使用tar命令进行文件打包和解压的基本示例:

打包文件或目录




tar -cvf archive_name.tar directory_or_file
  • -c 表示创建新的归档文件。
  • -v 表示在归档时显示详细信息。
  • -f 表示指定归档文件的名称。

解压tar文件




tar -xvf archive_name.tar
  • -x 表示从归档文件中提取文件。

打包并压缩文件或目录




tar -czvf archive_name.tar.gz directory_or_file
  • -z 表示使用gzip压缩。

解压缩tar.gz文件




tar -xzvf archive_name.tar.gz

打包并使用bzip2压缩




tar -cjvf archive_name.tar.bz2 directory_or_file

解压tar.bz2文件




tar -xjvf archive_name.tar.bz2

以上命令可以根据需要打包和解压tar文件,以及使用gzip或bzip2进行压缩和解压。

2024-08-16

在CentOS 7上升级glibc到2.36,你可以遵循以下步骤:

  1. 查看当前glibc版本:



yum list glibc
  1. 添加新的软件仓库,比如使用SCL仓库:



yum install centos-release-scl
  1. 安装新版本的glibc和工具链:



yum install glibc-2.36-30.el9.x86_64
  1. 启用新版本的glibc:



scl enable glibc-2.36 bash
  1. 验证新版本的glibc是否在运行:



rpm -q glibc

请注意,直接升级到CentOS 9的glibc版本可能会导致系统不稳定,因此推荐在测试环境中进行测试。如果你需要在生产环境中升级,请先在一个隔离的环境中进行测试,并确保有充足的备份和恢复计划。

2024-08-16

要在CentOS 7上将yum源配置成阿里云镜像源,你需要按照以下步骤操作:

  1. 备份原有的yum源配置文件。
  2. 下载阿里云的CentOS 7镜像源配置文件。
  3. 替换系统默认的yum源配置文件。

以下是具体的命令:




# 1. 备份原有的yum源配置文件
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
 
# 2. 下载阿里云的CentOS 7镜像源配置文件
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 
# 3. 清除缓存并生成新的缓存
sudo yum clean all
sudo yum makecache

执行上述命令后,你的CentOS 7系统的yum源就会被配置成阿里云镜像源。使用yum makecache是为了生成新的缓存,以便yum能够正确地使用新的镜像源进行软件包的安装和更新。

2024-08-16

在Linux中,可以使用stat命令查看文件的创建时间。但是,标准的Unix文件系统并不保存文件的创建时间,只保存修改时间、访问时间和状态改变时间。因此,在大多数Linux文件系统中,文件的创建时间是不可访问的。

如果你的文件系统支持保存文件的扩展属性(如ext4),你可以使用ls命令的-o选项来查看文件的扩展属性,包括创建时间(如果有的话)。

下面是如何查看文件的扩展属性,包括创建时间的方法:




ls -l --time=atime --time-style=full-iso /path/to/your/file

如果你想要查看文件的修改时间、访问时间和状态更改时间,可以使用以下命令:




stat /path/to/your/file

如果你需要查看文件夹的创建时间,可以使用以下命令:




stat /path/to/your/directory

请注意,如果你的文件系统不支持保存文件的创建时间,那么上述命令将无法显示创建时间。

2024-08-16

在CentOS 7上更新GCC版本至8.3.1以支持C17(C17对应C语言标准的ISO/IEC 9899:2018),你可以通过以下步骤进行:

  1. 安装SCL仓库:



sudo yum install centos-release-scl
  1. 安装新版本的GCC(例如8.3.1):



sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
  1. 启用新版本的GCC:



scl enable devtoolset-8 bash
  1. 验证GCC版本:



gcc --version

请注意,启用新版本的GCC后,只对当前会话有效。如果你想在系统范围内永久使用新版本的GCC,你可以在启用新版本后更新系统的gccg++软链接。

此外,如果你想要GCC支持C++17特性,你还需要安装C++17的库libstdc++-8.3.1:




sudo yum install devtoolset-8-libstdc++-devel

请确保在编译时指定C标准和C++标准,例如使用-std=c17-std=c++17编译选项。

2024-08-16

在Ubuntu 22.04上使用arm-linux-gnueabi交叉编译器编译Qt 5.15.2的步骤如下:

  1. 安装必要的依赖项:



sudo apt-update
sudo apt-get install build-essential \
    libgl1-mesa-dev \
    libgles2-mesa-dev \
    libegl1-mesa-dev \
    libxkbcommon-dev \
    libsqlite3-dev \
    gperf \
    flex \
    bison \
    glib-2.0 \
    libicu-dev \
    libdbus-1-dev \
    libxcb-keysyms-dev \
    libxcb-image-dev \
    libxcb-shm0-dev \
    libxcb-render-util-dev \
    libxcb-xfixes0-dev \
    zlib1g-dev
  1. 下载Qt 5.15.2源代码:



wget https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
tar xf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2
  1. 配置Qt编译系统:



./configure -prefix /usr/local/qt5arm \
    -opensource \
    -confirm-license \
    -release \
    -strip \
    -xplatform linux-arm-gnueabi-g++ \
    -optimized-qmake \
    -pch \
    -skip qt3d \
    -skip qtcanvas3d \
    -skip qtcharts \
    -skip qtconnectivity \
    -skip qtdatavis3d \
    -skip qtdoc \
    -skip qtgamepad \
    -skip qtlocation \
    -skip qtmacextras \
    -skip qtnetworkauth \
    -skip qtpurchasing \
    -skip qtremoteobjects \
    -skip qtscript \
    -skip qtscxml \
    -skip qtsensors \
    -skip qtspeech \
    -skip qtsvg \
    -skip qttools \
    -skip qttranslations \
    -skip qtwayland \
    -skip qtwebengine \
    -skip qtwebview \
    -skip qtwinextras \
    -skip qtx11extras \
    -make libs \
    -make examples \
    -nomake tests \
    -nomake tools \
    -gcc-toolchain /usr/bin/arm-linux-gnueabi- \
    -hostprefix /usr/local/qt5arm \
    -device linux-arm-gnueabi-g++ \
    -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- \
    -openssl-linked targeting arm
  1. 编译和安装Qt:



make -j$(nproc)
sudo make install

以上步骤会在你的Ubuntu系统上使用arm-linux-gnueabi交叉编译器编译Qt 5.15.2,并将其安装到/usr/local/qt5arm目录下。请确保你的交叉编译器路径是正确的,并且根据你的目标硬件架构(例如armv7, aarch64)来调整编译选项。

2024-08-16

在Linux/UNIX和Windows上安装MySQL的大体步骤相同,但是具体的命令和配置可能会有所不同。以下是基于Linux/UNIX和Windows安装MySQL的基本步骤:

Linux/UNIX系统安装MySQL:

  1. 使用包管理器安装MySQL。例如,在Ubuntu上,可以使用以下命令:



sudo apt-get update
sudo apt-get install mysql-server
  1. 启动MySQL服务:



sudo service mysql start
  1. 运行安全安装脚本设置密码和调整安全选项:



sudo mysql_secure_installation
  1. 登录MySQL:



mysql -u root -p

输入你在安全安装过程中设置的密码。

Windows系统安装MySQL:

  1. 下载MySQL Community Server的安装程序:

访问MySQL官方网站下载适用于Windows的安装程序。

  1. 运行安装程序:

双击下载的安装文件,并遵循安装向导的步骤完成安装。

  1. 启动MySQL服务:

可以在Windows服务列表中启动MySQL服务,或者使用命令行:




net start mysql
  1. 设置密码和调整安全选项:

MySQL安装向导通常提供一个配置安全性的选项,或者可以使用MySQL提供的mysql_secure_installation脚本。

  1. 登录MySQL:



mysql -u root -p

输入你在安装过程中或通过安全脚本设置的密码。

请注意,具体的命令和步骤可能会根据不同版本的Linux/UNIX或Windows以及MySQL版本的不同而有所变化。

2024-08-16

在Rocky Linux 9/AlmaLinux 9上配置静态IP地址,你需要编辑对应的网络接口配置文件。以下是一个基本的步骤和示例代码:

  1. 找到你的网络接口名称,使用nmcli d命令。
  2. 编辑接口的配置文件。配置文件通常位于/etc/sysconfig/network-scripts/目录下,并以ifcfg-开头。

例如,如果你的接口名称是eth0,那么配置文件就是/etc/sysconfig/network-scripts/ifcfg-eth0

  1. 使用文本编辑器(如vi, vim, nano等)编辑该文件,并设置静态IP参数。

以下是一个配置静态IP的示例配置文件内容:




TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=your-interface-uuid
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=1.1.1.1
DNS2=8.8.8.8

在这个例子中,IPADDR是你想要设置的静态IP地址,PREFIX是子网掩码的前缀长度,GATEWAY是默认网关,DNS1DNS2是DNS服务器地址。

  1. 保存配置文件并退出编辑器。
  2. 重启网络服务以应用新的IP设置,可以使用以下命令:



sudo systemctl restart NetworkManager

或者重启网络接口:




sudo ifdown eth0 && sudo ifup eth0

确保替换eth0为你自己的接口名称,并根据你的网络环境配置正确的IP地址、子网掩码、网关和DNS服务器地址。

2024-08-16

在Linux下设置定时任务常见的方法有以下三种:

  1. 使用cron

    cron是Linux下的定时任务工具,可以通过crontab命令进行管理。

例如,要每天早上5点清空/tmp目录下的所有文件,可以这样设置:




0 5 * * * /bin/rm -rf /tmp/*
  1. 使用anacron

    anacroncron的补充工具,主要用于处理那些在系统关闭时间过长导致未能执行的任务。

例如,要每天执行一次脚本/path/to/script.sh




0 0 * * * /path/to/script.sh
  1. 使用at命令:

    at命令用于设置一次性定时任务。

例如,要在明天上午9点执行脚本/path/to/script.sh




at -f /path/to/script.sh 9 tomorrow

以上是设置定时任务的三种常见方法,具体使用哪种取决于你的需求和环境配置。