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