cron 作业是否触及输出文件
Does a cron job touch the output file
我有以下形式的 cron 作业:
*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1
重定向空 echo
的输出并将其附加到输出文件时,修改日期会发生变化。
我的问题是在 cron 的输出文件中是否也会发生这种情况?
我想知道这个来验证文件上次执行的时间,而不必故意写入文件。
如果您的脚本没有输出任何内容,则输出文件不是 "touched",即修改时间未更新。但是您可以在这种情况下明确添加 "touch":
*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1; touch /tmp/script.out
顺便说一下,echo
empty 输出并不是真正的空,它会产生换行符(即 LF = 换行符):
$ echo | hexdump -c
0000000 \n
(已评论:当文件不存在时,创建(触摸)它。当它存在时,它不被触摸。)
当启用 cron 时(usr/password 未被阻止,没有 cron 被拒绝)我会信任 cron。当你想看看是否一切正常时,你应该从你的脚本中获取生命周期(目录和权限仍然有效,shebang 末尾没有 ^M,没有无效的更改或其他失败的依赖项)。
最好的方法是从脚本调用 touch 文件。
我有以下形式的 cron 作业:
*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1
重定向空 echo
的输出并将其附加到输出文件时,修改日期会发生变化。
我的问题是在 cron 的输出文件中是否也会发生这种情况?
我想知道这个来验证文件上次执行的时间,而不必故意写入文件。
如果您的脚本没有输出任何内容,则输出文件不是 "touched",即修改时间未更新。但是您可以在这种情况下明确添加 "touch":
*/5 * * * * /path/to/script.sh >> /tmp/script.out 2>&1; touch /tmp/script.out
顺便说一下,echo
empty 输出并不是真正的空,它会产生换行符(即 LF = 换行符):
$ echo | hexdump -c
0000000 \n
(已评论:当文件不存在时,创建(触摸)它。当它存在时,它不被触摸。)
当启用 cron 时(usr/password 未被阻止,没有 cron 被拒绝)我会信任 cron。当你想看看是否一切正常时,你应该从你的脚本中获取生命周期(目录和权限仍然有效,shebang 末尾没有 ^M,没有无效的更改或其他失败的依赖项)。
最好的方法是从脚本调用 touch 文件。