如何使用yum-cron自动更新RHEL/CentOS Linux
yum命令行工具用于在RHEL/CentOS Linux服务器下安装和更新软件包。 我知道如何使用yum update命令行应用更新,但我想用cron手动更新包。 如何配置yum以便使用cron自动安装软件补丁/更新?
你需要安装yum-cron软件包。 它提供了将yum更新作为cron作业运行所需的文件。 如果您希望通过cron每晚自动更新yum,请安装此软件包。
如何在CentOS/RHEL 6.x/7.x上安装yum cron
在下面输入以下yum命令:
sudo yum install yum-cron
在CentOS/RHEL 7.x上使用systemctl命令打开服务:
[linuxidc@localhost ~]$ sudo systemctl enable yum-cron.service
[linuxidc@localhost ~]$ sudo systemctl start yum-cron.service
[linuxidc@localhost ~]$ sudo systemctl status yum-cron.service
示例输出:
● yum-cron.service - Run automatic yum updates as a cron job
Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled)
Active: active (exited) since 二 2018-05-15 08:57:45 CST; 13s ago
Process: 3449 ExecStart=/bin/touch /var/lock/subsys/yum-cron (code=exited, status=0/SUCCESS)
Main PID: 3449 (code=exited, status=0/SUCCESS)
5月 15 08:57:45 localhost.localdomain systemd[1]: Starting Run automatic yum...
5月 15 08:57:45 localhost.localdomain systemd[1]: Started Run automatic yum ...
Hint: Some lines were ellipsized, use -l to show in full.
[linuxidc@localhost ~]$
如果您正在使用CentOS/RHEL 6.x,请运行:
$ sudo chkconfig yum-cron on
$ sudo service yum-cron start
yum-cron是yum的备用接口。 从cron中调用yum的非常方便的方法。 它提供了使库元数据保持最新的方法,并检查,下载和应用更新。 yum-cron的不同功能可以通过配置文件访问,而不是接受许多不同的命令行参数。
如何配置yum-cron以自动更新RHEL/CentOS Linux
您需要使用文本编辑器(如vi命令)编辑/etc/yum/yum-cron.conf和/etc/yum/yum-cron-hourly.conf文件:
$ sudo vi /etc/yum/yum-cron.conf
确保更新应该在可用时应用
apply_updates = yes
您可以设置地址以从中发送电子邮件。 请注意'localhost'将被替换为system_name的值。
email_from = root@localhost
要发送消息的地址列表。
email_to = your-it-support@some-domain-name
要连接到发送电子邮件的主机的名称。
email_host = localhost
如果您不想更新内核包,请在CentOS/RHEL 7.x上添加以下内容:
exclude=kernel*
对于RHEL/CentOS 6.x,添加以下内容以排除内核程序包的更新:
YUM_PARAMETER=kernel*
在vi/vim中保存并关闭文件。 如果您想每小时应用更新,则还需要更新/etc/yum/yum-cron-hourly.conf文件。 否则/etc/yum/yum-cron.conf将每天使用以下cron作业运行(us cat命令:
$ cat /etc/cron.daily/0yum-daily.cron
示例输出:
#!/bin/bash
# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
exit 0
fi
# Action!
exec /usr/sbin/yum-cron /etc/yum/yum-cron-hourly.conf
[root@centos7-box yum]# cat /etc/cron.daily/0yum-daily.cron
#!/bin/bash
# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
if [[ ! -f /var/lock/subsys/yum-cron ]]; then
exit 0
fi
# Action!
exec /usr/sbin/yum-cron
就这些。 现在你的系统会每天使用yum-cron自动更新。 有关更多详细信息,请参阅yum-cron的手册页:
$ man yum-cron
方法2 - 使用shell脚本
警告:以下方法已过时。 不要在RHEL/CentOS 6.x/7.x上使用它。 只有当我在CentOS/RHEL版本4.x/5.x上使用它时,我才将其保留在下面。
让我们看看如何配置CentOS/RHEL来进行yum自动更新检索和安全包的安装。 您可以使用CentOS/RHEL服务器提供的yum-updatesd服务。 但是,该服务提供了一些开销。 您可以使用以下shell脚本创建每日或每周更新。 创建
/etc/cron.daily/yumupdate.sh to apply updates one a day.
/etc/cron.weekly/yumupdate.sh to apply updates once a week.
用于更新系统的示例Shell脚本
一个shell脚本,指示yum更新它通过cron发现的任何包:
#!/bin/bash
YUM=/usr/bin/yum
$YUM -y -R 120 -d 0 -e 0 update yum
$YUM -y -R 10 -e 0 -d 0 update
(代码清单-01:/etc/cron.daily/yumupdate.sh)
1.第一个命令会自动更新yum,接下来会应用系统更新。
2.-R 120:设置yum在执行命令之前等待的最长时间
3. -e 0:将错误级别设置为0(范围0 - 10)。 0表示仅打印关于您必须告诉的关键错误。
-d 0:将调试级别设置为0 - 打开或关闭打印内容的数量。 (范围:0 - 10).1.-y:假设是; 假设对任何问题的答案都是肯定的。
确保你设置了可执行权限:
# chmod +x /etc/cron.daily/yumupdate.sh
OK! 如果您有任何问题或意见,请随时在下面发表评论。