如何使用yum-cron自动更新RHEL/CentOS Linux
yum命令行工具用于在RHEL/CentOS Linux服务器下安装和更新软件包。
我知道如何使用yum update命令行应用更新,但是我想使用cron手动更新软件包。
如何配置yum以使用cron自动安装软件补丁/更新?
您需要安装yum-cron软件包。
它提供了作为cron作业运行yum更新所需的文件。
如果您想通过cron每晚自动更新yum,请安装此软件包。
本教程将学习如何使用yum-cron自动更新RHEL或CentOS Linux。
如何在CentOS/RHEL 6.x/7.x上安装yum-cron
在以下命令上执行以下yum命令:
$ sudo yum install yum-cron
在CentOS/RHEL 7.x上使用systemctl命令打开服务:
$ sudo systemctl enable yum-cron.service $ sudo systemctl start yum-cron.service $ sudo systemctl status yum-cron.service
如果您使用的是" 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
您可以设置发送电子邮件的地址。
请注意,本地主机将替换为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作业每天运行(使用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
这是CentOS 7.x的更新版本:
[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每天应用一次更新。
/etc/cron.weekly/yumupdate.sh
每周应用一次更新。
示例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
其中:
- 第一个命令将自行更新yum,下一个命令将应用系统更新。
- -R 120:设置yum在执行命令之前等待的最长时间
- -e 0:将错误级别设置为0(范围0 10)。 0表示仅打印必须告知您的严重错误。
- -d 0:将调试级别设置为0,以增加或减少打印的内容。 (范围:0 10)。
- -y:假设是;假设将要回答的任何问题的答案是肯定的。
确保您设置了可执行权限:
# chmod +x /etc/cron.daily/yumupdate.sh