我的系统定期移动/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
?有办法解决吗?