tai*_*tai 3 command-line bash sudo scripts cron
我在尝试将 bash 脚本调用为无法运行时遇到cronjob一些问题。
以下是为了消除一些可能的故障来源:
sudo crontab -e0 4 * * * bash ~/nightly_backup.sh/home/myuser/nightly_backup.shsudo bash ~/nightly_backup.sh可以了fswebcam -r ...)我究竟做错了什么?
另外:今天查看脚本是否已运行,我看到系统日志显示以下内容:
Feb 7 04:00:01 localhost CRON[7767]: (root) CMD (bash ~/nightly_backup.sh)
Feb 7 04:00:01 localhost CRON[7764]: (CRON) info (No MTA installed, discarding output)
Feb 7 04:00:03 localhost CRON[7765]: (CRON) info (No MTA installed, discarding output)
Run Code Online (Sandbox Code Playgroud)
基本问题似乎是:~其中的使用指的是home当前用户的使用。
有关该问题的更多详细信息:
~( /home/myuserhome myuser)~( /roothome root)由于该文件不存在,因此/root/nightly_backup.sh cron无法执行它。
解决方案:
代替:
0 4 * * * bash ~/nightly_backup.sh
Run Code Online (Sandbox Code Playgroud)
和:
0 4 * * * /home/myuser/nightly_backup.sh
Run Code Online (Sandbox Code Playgroud)
请注意,您应该通过运行以下命令(一次)来确保 shell 脚本是可执行的:
chmod +x /home/myuser/nightly_backup.sh
Run Code Online (Sandbox Code Playgroud)
注:关于你的另一个问题
“未安装 MTA,丢弃输出”是什么意思?
在这里得到了解答
简而言之: 发生这种情况是因为您的 cron 作业正在生成输出,然后 cron 守护程序尝试将该输出通过电子邮件发送给您,而您的系统中没有安装邮件服务。
您可以通过以下方法之一解决它(更多信息在这里)
logger中看到它syslog