使用 wget 将两个 Cron 作业放入 crontab

使用 wget 将两个 Cron 作业放入 crontab

我正在尝试放置这两个 Cron Jobs:

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 中以及如何保存?

抱歉,如果这很简单,但我很新,其他网络资源没有任何帮助

答案1

这是一个巨大的安全风险,但是

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

答案2

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 会出现一些有趣的问题,我认为您不想这样做,但这是一个不同的问题。

相关内容