[排错] 解决 openSUSE & SLES 使用 zypper migration 命令时报错 “are not activated on the system”

报错命令

# zypper migration

报错代码

'The requested products 'SAP Applications Module 15 SP6 x86_64' are not activated on the system.' (422)

'/usr/lib/zypper/commands/zypper-migration' exited with status 1

(补充:从这里输出可以看出,本次缺失的软件库是 SAP Applications Module 15 SP6 x86_64)

解决方法

解决方法一:添加缺失的软件库 (必须要有相关软件库的订阅才能使用此解决方法)

1.1 显示所有的软件库

# SUSEConnect --list-extensions

或者:

# SUSEConnect -l

(补充:如果此时有相关的软件库订阅的话,此命令就会显示添加相关软件库的方法)

1.2 添加相应的软件库

按照上一步显示的方法,添加相应的软件库

解决方法二:删除缺失的软件库

# zypper remove -y sle-module-sap-applications-release

(补充:这里以删除 sle-module-sap-applications-release 软件库为例)

[步骤] SSL 证书公钥从 cer 格式到 pfx 格式的转换

正文:

步骤一:将 SSL 证书公钥从 cer 格式转换到 pem 格式

# openssl x509 -in <public certificate>.cer -inform der -outform pem -out <public certificate>.pem

步骤二:将 SSL 证书公钥和私钥从 pem 格式转换成 pfx

# openssl pkcs12 -export -in <public certificate>.pem -inkey <private certificate>.key -out <certificate>.pfx

参考文献:

https://access.redhat.com/solutions/7005234

[命令] Linux 命令 at (延迟执行某个命令)

正文:

步骤一:安装 at 命令

# dnf install at

步骤二:启动 atd 进程

# systemctl enable --now atd

步骤三:通过 at 命令设置延迟执行命令

3.1 设置执行的时间并进入 at 模式

# at now +3 minutes
warning: commands will be executed using /bin/sh


补充:这里的 now +3 minutes 代表当前时间 3 分钟后执行。
所有可选的时间选项如下:
1) now +3 minutes,3 分钟后执行
2) now +3 hours,3 小时后执行
3) now +3 days,3 天后执行
4) 15:30,当天 15:30 时执行
5) 15:30 2025-01-01,2025 年 1 月 1 日时执行
6) teatime,当天 16:00 执行
7) midnight 次日凌晨 00:00 执行

3.2 设置执行的命令

at> reboot

(补充:这里以执行 reboot 命令为例)

3.3 退出 at 模式

at> <CtrlD> + <D>

at> <EOT>
job 5 at Tue Sep 16 22:37:00 2025
#

步骤四:查看 at 设置的要执行的命令

4.1 显示 at 所有设置的列表

# at -l
6	Tue Sep 16 22:37:00 2025 a root

4.2 显示某条 at 命令的设置

# at -c 6

(补充:这里以显示第 6 条 at 命令为例,这里的 6 是步骤 4.1 的输出结果)

补充:在脚本中使用 at 命令的方法

# vim test.sh

创建以下内容:

#!/bin/bash
at now + 1min << EOF

reboot

EOF

(补充:这里以创建名为 test.sh 在 1 分钟后重启系统为例)