首頁 > 軟體

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

2020-06-16 16:51:54

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! 如果您有任何問題或意見,請隨時在下面發表評論。


IT145.com E-mail:sddin#qq.com