我需要编写一个脚本来定期升级系统,我创建了这个测试脚本,每 2 分钟执行一次以检查它是否有效,但是如果我运行该脚本并在一段时间后检查 /var/log 目录,那里没有我的 .log 文件。我检查了 crontab -l,它显示了新添加的 cronjob。可能是什么问题,我做错了什么?
#!/bin/bash
log_dir=$(date +'%Y%m%d')
crontab -l > mycron
#echo new cron into cron file
echo "*/2 * * * * (sudo apt-get -y update && sudo apt-get -y upgrade) >> /var/log/update-$log_dir.log 2>&1" >> mycron
#install new cron file
crontab mycron
rm mycron
答案1
您不应调用sudo
crontab。要使用 cron 以其他用户身份运行命令,请编辑该用户的 crontab。在 root 的 crontab 中,您只需运行apt-get
不带 的命令即可sudo
。
要编辑 root 的 crontab,请使用:
sudo crontab -e
(我不会编写脚本来向 crontab 添加一行,因为这是一项一次性的工作,不值得自动化。)