如果没有 /tmp 目录,sudo crontab 将无法工作:“(CRON) 错误(创建 tmpfile)”

如果没有 /tmp 目录,sudo crontab 将无法工作:“(CRON) 错误(创建 tmpfile)”

我的系统定期移动/tmp/snapshot.(背景)

现在我想创建一个 cronjob,每分钟检查该目录是否被系统重命名,然后将其重命名回来。

$ sudo crontab -l
# ...
*/1 * * * * if [ ! -d "/tmp" ];        then mv /snapshot.0         /tmp;       2>> /home/t/tmp.err1; date >> /home/t/tmp.log1; fi 
*/1 * * * * if [ ! -d "/a" ];          then mv /b                  /a          2>> /home/t/tmp.err2; date >> /home/t/tmp.log2; fi 
*/1 * * * * if [ ! -d "/home/t/tmp" ]; then mv /home/t/snapshot.0  /home/t/tmp 2>> /home/t/tmp.err3; date >> /home/t/tmp.log3; fi 
*/1 * * * * echo "test" #this command definitely doesn't depend on /tmp

只要/tmp存在,这些就有效。但是,当/tmp重命名时,它们都会失败,并显示此条目/var/log/cron.log

{date and time} ttp CRON[{job-id}]: (CRON) error (create tmpfile)

为什么 sudo crontab 依赖于/tmp?有办法解决吗?

相关内容