OpenEuler使用

镜像下载及校验

镜像下载路径:https://www.openeuler.org/zh/download/
镜像22.03-LTS-SP2:openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso
镜像22.03-LTS-SP2 sha256码:8f00c6251c944330fc0bedbcc1085ab029cd1e49aadd14c236658fa7ac0a8b2c
sha256计算方法:

Linux:
    sha256sum openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso

Windows:
    certutil -hashfile openEuler-22.03-LTS-SP2-aarch64-dvd.iso sha256

系统管理

查看系统信息

  • 查看系统信息:cat /etc/os-release
  • 查看CPU信息:lscpu
  • 查看内存信息:free 或者 cat /proc/meminfo
  • 查看磁盘信息:fdisk -l
  • 查看系统资源实时情况:top

DNF管理软件包

设置/etc/dnf/dnf.conf的[main]配置
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False

gpgcheck:可选值1和0,设置是否进行gpg校验。默认值为1,表示需要进行校验。
installonly_limit:设置可以同时安装“installonlypkgs”指令中列出的任何单个软件包的最大版本数。默认值为3,不建议降低此值。
clean_requirements_on_remove:删除在dnf remove期间不再使用的依赖项,如果软件包是通过DNF安装的,而不是通过显式用户请求安装的,则只能通过删除软件包,即它是作为依赖项引入的。 默认值为True。
best:升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装。默认值为True。

设置/etc/yum.repos.d/openEuler.repo的[repository]配置

默认安装系统完成后,系统会将默认的源设置到此文件中。

[OS] 
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS-SP2/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS-SP2/OS/$basearch/RPM-GPG-KEY-openEuler
dnf/rpm使用命令
  • 查看当前配置信息:dnf config-manager --dump
  • 查看软件源的配置:dnf repolist
  • 搜索安装包:dnf search httpd
  • 显示已经安装的rpm清单:dnf list all 或者 dnf list *httpd*
  • 安装rpm:dnf install httpd
  • 删除rpm:dnf remove httpd
  • 查看rpm信息:dnf info httpd
  • 下载rpm包:dnf download httpd
  • 下载rpm包及未安装的依赖:dnf download --resolve httpd
  • 检查更新:dnf check-update 或者 dnf update httpd
  • 清理缓存:dnf clean all
  • 更新缓存:dnf makecache

特殊说明:rpm命令还是可以使用的

  • 查看rpm包的安装文件和路径:rpm -qpl httpd-2.4.51-20.oe2203sp2.x86_64.rpm
  • 安装rpm:rpm -ivh httpd-2.4.51-20.oe2203sp2.x86_64.rpm
  • 删除rpm:rpm -e httpd-2.4.51-20.oe2203sp2.x86_64.rpm
  • 升级rpm:rpm -Uvh httpd-2.4.51-20.oe2203sp2.x86_64.rpm
  • 强制安装(忽略冲突和依赖包):rpm -ivh --force --nodeps httpd-2.4.51-20.oe2203sp2.x86_64.rpm
  • 不依赖强制卸载:rpm -e --nodeps httpd-2.4.51-20.oe2203sp2.x86_64.rpm
搭建repo Server
  1. mount镜像:mount /home/openEuler/openEuler-22.03-LTS-SP2-everything-x86_64-dvd.iso /mnt/
  2. 创建目录并拷贝数据:
mkdir -p /usr/share/nginx/repo;
cp -r /mnt/Packages /usr/share/nginx/repo;
cp -r /mnt/repodata /usr/share/nginx/repo;
cp -r /mnt/RPM-GPG-KEY-openEuler /usr/share/nginx/repo;
chmod -R 755 /usr/share/nginx/repo
  1. Nginx Server块配置
server { 
     listen 80; 
     server_name localhost;   # 服务器名(url) 
     client_max_body_size 4G; 
     root /usr/share/nginx/repo; # 服务默认目录
     location / { 
         autoindex on; # 开启访问目录下层文件 
         autoindex_exact_size on; 
         autoindex_localtime on; 
     }
 }
  1. 使用本地repo
[base] 
name=base 
baseurl=file:///usr/share/nginx/repo
enabled=1 
gpgcheck=1 
gpgkey=file:///usr/share/nginx/repo/RPM-GPG-KEY-openEuler
  1. 使用远程repo
[base] 
name=base 
baseurl=http://192.168.139.209/ 
enabled=1 
gpgcheck=1 
priority=2
gpgkey=http://192.168.139.209/RPM-GPG-KEY-openEuler
  1. 其他
    特殊配置:priority=2;使用的优先级,默认99,1为最高;

用户管理

  • 添加用户:useradd user1 相关文件/etc/passwd 和 /etc/shadow
  • 删除用户:usrdel user1
  • 查看用户:id user1
  • 修改密码:passwd user1
  • 添加组:groupadd group1
  • 删除组:groupdel group1
  • 用户加入组:gpasswd -a user1 group1
  • 用户移除组:gpasswd -d user1 group1
  • 用户更改组:newgrp group2
  • 用户管理员权限:
/etc/sudoers
User_Alias ADMIN=ted1:POWERUSER=globus,ted2
ADMIN ALL=ALL
POWERUSER ALL=ALL,!/bin/su

User_Alias:定义了两个别名ADMIN和POWERUSER
ADMIN ALL=ALL:说明在所有主机上,ADMIN用户都可以以root身份执行所有命令
POWERUSER ALL=ALL,!/bin/su:给POWERUSER用户除了运行su命令外等同ADMIN的权限

进程管理

  • 当前系统中的用户情况:who
  • 查看进程:ps -eaf 或者ps aux
  • 查看进程实时状态:top
  • 信号命令:kill -9 a.exe 或者 kill -l
  • at命令:at
  • cron命令: crontab

网络配置

配置IP地址–nmcli

nmcli是NetworkManager的一个命令行工具;

  • 查看NetworkManager状态:nmcli general status
  • 显示所有连接:nmcli connection show 或者 nmcli connection show --active
  • 显示由NetworkManager识别到的设备及其状态:nmcli device status
  • 启动和停止网络接口:nmcli connection up id ens3s0 或者 nmcli device disconnect ens3s0
  • 静态配置IP地址:nmcli con add type ethernet con-name net-static ifname ens35 ip4 192.168.0.10/24 gw4 192.168.0.254; nmcli con up net-static 接口没有地址,con up会异常;
  • 查看配置详情:nmcli -p con show net-static路由相关:
  • 配置静态路由:nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
配置IP地址–ip
  • 配置IP:ip address add 192.168.0.10/24 dev enp3s0 一个接口可配置多个IP
  • 配置静态路由:ip route add 192.168.2.1 via 10.0.0.1 dev ens35
配置主机名
  • 设置主机名:hostnamectl set-hostname testcall
  • nmcli获取主机名:nmcli general hostname
  • nmcli设置主机名:nmcli general hostname host-server 并且systemctl restart systemd-hostnamed
配置聚合口

加载内核bonding模块:modprobe --first-time bonding;modinfo bonding

  • 创建聚合口:nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
  • 添加物理口到聚合口:nmcli con add type bond-slave ifname enp3s0 master mybond0
  • 先启动slave口:nmcli con up bond-slave-enp3s0
  • 再启动聚合口:nmcli con up mybond0
IP地址配置特殊说明
  1. IPv6接口的MTU必须大于1280字节,否则会导致IPv6地址丢失;
  2. 网卡down掉之后,IPv6地址丢失:如果需要保留这些IPv6地址,可以通过“sysctl -w net.ipv6.conf.<网卡名>.keep_addr_on_down=1”来实现。

运维指南

性能相关

CPU
  1. vmstat 1
  2. 查看系统CPU的整体负载情况:yum install -y sysstat;sar -u 3 5
  3. 查看系统中所有的进程:ps -le
  4. 动态地持续监听进程的运行状态,显示最消耗CPU的进程:top
Memory
  1. 显示系统内存状态:free
  2. 动态地监控系统内存:vmstat -a
  3. 监控系统的内存使用情况:sar -r 2 3 每2秒统计一次,统计 3 次
  4. 查看NUMA节点配置和状态:numactl -H
  5. 观察各个NUMA节点的状态:numastat
Disk
  1. 详细显示磁盘信息:iostat -d -k -x 1 100
  2. 查看系统磁盘的读写性能:sar -d 3 5
  3. 磁盘相关统计信息:vmstat -d

信息采集

OS
  1. 系统版本:cat /etc/openEuler-latest 或者 cat /etc/os-release 或者 cat /etc/openEuler-release
  2. 内核版本信息:uname -a
硬件信息
  1. cpu信息:lscpu 或者 cat /proc/cpuinfo
  2. 内存信息:cat /proc/meminfo 或者 dmidecode -t memory
  3. 磁盘信息:lsblk 或者 fdisk -l
  4. 网卡硬件:lspci| grep -i eth 或者 ip addr 或者ifconfig -a
  5. 查看网口详情:ethtool ens34
  6. pci信息:lspci 或者 lspci -t
  7. bios信息:dmidecode -t bios
软件包信息
  1. 软件包详细信息:rpm -qi httpd
  2. 软件包提供的模块:rpm -q --provides httpd
  3. 所有安装包:rpm -qa
  4. 软件包文件列表:rpm -ql httpd.rpm

OS日志

  1. cat /var/log/message
  2. cat /var/log/secure
  3. cat /var/log/maillog
  4. cat /var/log/cron
  5. cat /var/log/boot.log
  6. cat /var/log/spooler

故障应急

  1. 触发kdump重启:echo 1 > /proc/sys/kernel/sysrq;echo c > /proc/sysrq-trigger
  2. 强制重启:reboot -f 或者 iBMC强制下电重启
  3. 重启网络:systemctl restart NetworkManager
  4. 修复文件系统:
此时一般会进入救援模式,在日志中查看是哪个文件系统路径损坏:journalctl -xb
修复前检查该分区是否已经挂载:cat /proc/mounts 
卸载该目录:umount xx
若无法卸载,**kill**占用该目录的进程:lsof | grep xxx;kill xxx
执行fsck命令进行修复:fsck -y /dev/xxx
  1. dropcache:sync;echo 3 > /proc/sys/vm/drop_caches
  2. 救援模式和单用户模式
救援模式
挂载openEuler 22.03 LTS SP2镜像进入救援模式。
选择Troubleshooting。
选择Rescue a openEuler system。
按提示操作进行。
1)Continue
2)Read-only mount
3)Skip to shell
4)Quit(Reboot)

单用户模式
在登录界面,输入字母e,进入grub界面,在linux行加入init=/bin/sh,按ctrl+x进入界面。
执行mount -o remount,rw /。
执行修改密码等操作。
exit退出。

特殊说明: openEuler的grub用户密码是: 用户名 root 密码 openEuler#12

常用工具

ftrace

strace

kdump

  1. 安装rpm:yum install kernel-debuginfo-$(uname -r) kexec-tools crash -y
  2. 设置crash预留大小:vim /etc/default/grub crashkernel=1024M
  3. 重新生成grub:grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg;reboot
  4. 启动kdump:systemctl start kdump;systemctl enable kdump;
  5. 触发panic:
# 设置软锁触发panic 
echo 1 > /proc/sys/kernel/softlockup_panic 
# 设置kernel遇到OOM触发panic 
echo 1 > /proc/sys/vm/panic_on_oom 
# 进程出现hang时引发panic 
echo 1 > /proc/sys/kernel/hung_task_panic 
# 进程hangtask机制超时时间设置 
echo 60 > /proc/sys/kernel/kernel.hung_task_timeout_secs
  1. 调试:crash {vmcore文件} {调试内核vmlinux}