Cron
使用 wget 將兩個 Cron 作業放入 crontab
我正在嘗試放置這兩個 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 有一些有趣的問題,我認為您不想這樣做,但這是一個不同的問題。