[步骤] Linux Kdump 的开启 (用于收集内核崩溃时的信息) (CentOS 7 & Rocky Linux 8 & RHEL 7 & RHEL 8 版)

步骤一:开启 Kdump

1.1 确保 crash 和 kernel-debuginfo 两个软件包已安装

# rpm -qa | grep crash || yum install crash ; rpm -qa | grep kernel-debug || yum install kernel-debug

1.2 设置内核崩溃信息的存放位置

# vim /etc/kdump.conf

修改以下内容:

......
/var/crash
......


补充:
1) 默认的存放位置是 /var/crash
2) 把这里修改成想要存放内核崩溃信息的目录
3) 为了保险起见存放内核崩溃信息的位置最好有大于内存大小的剩余空间

1.3 重新启动 kdump 服务并设置为开机自启

# systemctl restart kdump ; systemctl enable kdump

1.4 确保 kdump 服务已经开启

# systemctl status kdump

(补充:当显示输出结果里包含 operational 或者 Active: active (exited) 时,则说明 Kdump 已经启用)

步骤二:设置收集内核崩溃信息的触发条件

2.1 当内核崩溃时自动收集内核崩溃信息

2.1.1 修改 /etc/sysctl.conf 文件
# vim /etc/sysctl.conf

添加以下内容:

......
kernel.hung_task_panic=1
2.1.2 让修改的 /etc/sysctl.conf 文件生效
# sysctl -p /etc/sysctl.conf
2.1.3 当内核崩溃时,系统会自动收集内核崩溃信息

(步骤略)

2.2 当内核崩溃时使用魔术键收集内核崩溃信息

2.2.1 修改 /etc/sysctl.conf 文件
# vim /etc/sysctl.conf

添加以下内容:

......
kernel.sysrq = 1
2.2.2 让修改的 /etc/sysctl.conf 文件生效
# sysctl -p /etc/sysctl.conf
2.2.3 当内核崩溃时,使用魔术键收集内核崩溃信息

同时先后按下以下三个按键:

ALT + PRINTSCREEN + C

2.3 当内核崩溃时使用硬件发送 NMI 收集内核崩溃信息

2.3.1 修改 /etc/sysctl.conf 文件
# vim /etc/sysctl.conf

添加以下内容:

......
kernel.unknown_nmi_panic = 1
kernel.panic_on_unrecovered_nmi = 1
kernel.panic_on_io_nmi = 1
2.3.2 让修改的 /etc/sysctl.conf 文件生效
# sysctl -p /etc/sysctl.conf
2.3.3 当内核崩溃时,联系硬件技术支持使用硬件发送 NMI 收集内核崩溃信息

(步骤略)

步骤三:手动触发内核崩溃测试 Kdmup

# echo c > /proc/sysrq-trigger

(注意:此操作会造成系统重启)

参考文献:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/system_design_guide/installing-and-configuring-kdump_system-design-guide
https://access.redhat.com/solutions/916043
https://access.redhat.com/solutions/3698411
https://access.redhat.com/solutions/6038
https://access.redhat.com/solutions/23069

[步骤] SLE 软件库的启用和禁用

注意:

在启用或禁用 SLE 的软件库前,要先注册此 SLE

正文:

步骤一:显示所有可用软件库

# SUSEConnect --list-extensions

步骤二:启用软件库

# SUSEConnect -p sle-module-live-patching/15.3/x86_64

(补充:这里以启用 sle-module-live-patching/15.3/x86_64 软件库为例)

步骤三:禁用软件库

# SUSEConnect -d -p sle-module-basesystem/15.3/x86_64

(补充:这里以禁用用 sle-module-live-patching/15.3/x86_64 软件库为例)

[步骤] SLE 到 SUSE 官网的注册和取消注册

正文:

步骤一:注册到 SLE 官网

# SUSEConnect -r <ActivationCode> -e <EmailAddress>

(补充:这里的 <ActivationCode> 和 <EmailAddress> 是在注册了 SUSE 账号并购买了对应的的订阅以后获得)

内容二:取消注册 SLE 到 SUSE 官网

2.1 取消注册 SLE 到 SUSE 官网

# SUSEConnect –de-register

或者:

# SUSEConnect -d

2.2 清空客户端与 SUSE 官网相关的缓存

# SUSEConnect --cleanup

2.3 删除客户端与 SUSE 官网相关的文件

# rm -f /etc/SUSEConnect
# rm -rf /etc/zypp/credentials.d/*
# rm -rf /etc/zypp/repos.d/*
# rm -f /etc/zypp/services.d/*

参考文献:

https://www.suse.com/support/kb/doc/?id=000018564

[工具] Shell 批量设置官方软件源 (openSUSE Leap 15.2 版)

介绍

基本信息

作者:朱明宇
名称:批量设置官方软件源(openSUSE 版)
作用:批量设置官方软件源(openSUSE 版)

使用方法

1. 服务器清单 $add_repo_servers_list.txt 每个服务器名占用 1 行,并和此脚本放在同一目录下
2. 在此脚本的分割线内写入相应的内容
3. 给此脚本添加执行权限
4. 执行此脚本

脚本分割线里的变量

add_repo_servers_list.txt #指定存放要设置官方软件源的文件

注意

1. 此脚本执行前必须要先保证执行此脚本的用户能无密码 ssh 远程这些远程服务器
2. 服务器的系统需要是 openSUSE 15.2 版本
3. 服务器系统要配置好可用的软件源(最好是软件数量最多的官方版本)
4. 这些远程服务器要能够连接外网

脚本

#!/bin/bash

####################### Separator ########################

add_repo_servers_list.txt

####################### Separator ########################

cat add_repo_servers_list.txt
read -p "will add opensuse_leap_15.2 repo please input y " a
echo $a

if [ "$a" != "y" ];then
        echo "you don't agree so exit now"
        exit
fi

for i in `awk '{print $1}' add_repo_servers_list.txt`
do
        ssh $i '
        sudo -u root su - root -c "zypper mr -da"
        sudo -u root su - root -c "zypper ar -fcg http://download.opensuse.org/distribution/leap/15.2/repo/oss/ OpenSUSE_Leap_152_x64_update-oss"
        sudo -u root su - root -c "zypper ar -fcg http://download.opensuse.org/distribution/leap/15.2/repo/non-oss/ OpenSUSE_Leap_152_x64_update-non-oss"
        sudo -u root su - root -c "zypper ar -fcg http://download.opensuse.org/update/leap/15.2/oss/ OpenSUSE_Leap_152_x64_oss"
        sudo -u root su - root -c "zypper ar -fcg http://download.opensuse.org/update/leap/15.2/non-oss/ OpenSUSE_Leap_152_x64_non-oss"
        sudo -u root su - root -c "zypper ref"
done