Cron

使用 wget 將兩個 Cron 作業放入 crontab

  • June 18, 2015

我正在嘗試放置這兩個 Cron 作業:

0 3 * * * ! sudo -u asterisk /var/lib/asterisk/bin/module_admin  --repos extended,standard,unsupported upgradeall

30 3 * * * ! sudo -u asterisk /var/lib/asterisk/bin/module_admin reload

進入儲存庫,以便我可以執行

wget www.website.com cronjob.(zip or text)

我將如何保存這些以便我可以將它們注入 crontab 以及如何?

對不起,如果這很簡單,但我很新,其他網路資源沒有任何幫助

這是一個巨大的安全風險,但是

wget www.website.com cronjob.txt
crontab -u username cronjob.txt

但是你的 crontab 看起來不對。為什麼需要 sudo,cron 作業以安裝它們的使用者身份執行。所以你最好把這些行放在星號的 crontab 中。

sudo crontab -u asterisk 

然後加

0 3 * * *   /var/lib/asterisk/bin/module_admin  --repos extended,standard,unsupported upgradeall

30 3 * * *  /var/lib/asterisk/bin/module_admin reload
wget -O - www.website.com/cronjob.gz|zcat|sudo tee -a /etc/crontab

或者

crontab -l | cat - <(wget -O - www.website.com/cronjob.gz|zcat)| crontab -

這些命令的缺點是它們不檢查以驗證命令不存在。您最好使用 crontab.d 或 cron.d 目錄(如果它們存在)並使用您正在使用的服務在其中創建一個文件。另一種選擇是更花哨的腳本,例如

grep '^### Next three lines added by script 456' /etc/crontab && exit
sudo tee -a /etc/crontab <<< EOF
0 3 * * * ! sudo -u asterisk /var/lib/asterisk/bin/module_admin  --repos extended,standard,unsupported upgradeall
30 3 * * * ! sudo -u asterisk /var/lib/asterisk/bin/module_admin reload
EOF

並將其呼叫為

wget -O - www.website.com/script.gz|zcat|bash

或者

bash <(wget -O - www.website.com/script.gz|zcat)

PS 從 cron 執行 sudo 有一些有趣的問題,我認為您不想這樣做,但這是一個不同的問題。

引用自:https://unix.stackexchange.com/questions/210638