我通过 ssh 连接到服务器,并且想要添加一些日常作业(特别是即使在我注销时更新 Kerberos 票证并且我仍然希望我的 screen 或 tmux 中的程序继续运行)到 cron。所以我运行crontab -e,并添加以下内容,
00 00 * * * kinit -R
00 12 * * * kinit -R
Run Code Online (Sandbox Code Playgroud)
我保存的时候,编辑问我:
File Name to Write: /tmp/crontab.HMpG7V
Run Code Online (Sandbox Code Playgroud)
里面的文件不是/tmp可以被操作系统删除吗?尤其是在我退出服务器之后?
我应该在哪里存储我的 crontab 文件?我可以将 crontab 文件保存在 $HOME 或一些更好的空间下吗?
jay*_*ren 17
crontab -e在 /tmp 而不是实际的 crontab 中打开一个文件,以便它可以检查新的 crontab 是否有错误,并防止您用这些错误覆盖实际的 crontab。如果没有错误,那么您的实际 crontab 将被更新。如果crontab -e只是直接写入您的实际 crontab,那么您将面临由于新 crontab 中的语法错误而导致所有 cronjob 无法运行的风险。
sudoedit, visudo, vipw, 等的操作原理相同。
别担心,您的实际 crontab 位于磁盘上的非易失性位置。
/tmp是写入临时 crontab 文件的位置。保存并退出后,crontab会将更改提交到系统上另一个更合适的目录(通常在/var/spool/cron,如果我没记错的话)。所以,别担心,操作系统可能会删除你的 /tmp,但它永远不会带走你的 crontab。