如何使用yum-cron自动更新RHEL/CentOS Linux

时间:2020-01-09 14:16:24  来源:igfitidea点击:

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