我遇到了与cron有关的问题。 假设在shell脚本中,我正在运行查询,并且输出存储器被存储到临时文件中。该临时文件的位置是什么?以及如何在shell脚本中删除?
答案 0 :(得分:0)
如果正在运行的命令cron有输出(例如状态报告,或 错误),cron会将输出通过电子邮件发送给指定的人 MAILTO变量。如果没有指定,那么输出将是 邮寄给产生输出的过程的所有者。
来自here
答案 1 :(得分:0)
output.txt
将在cron启动命令的目录中结束。不幸的是,POSIX crontab specification似乎没有指定该目录是什么。我也不能在我的系统的手册页中找到任何内容。
在我的系统上,cron将使用它运行命令的用户的主目录。如果您在系统上找不到output.txt
,可以通过在crontab上临时添加如下行来取消cron目录:
对于用户crontabs:
* * * * * pwd >>/tmp/cronpwd
对于系统crontab(用运行原始命令的用户的名称替换user
):
* * * * * user pwd >>/tmp/cronpwd
然后等一下,文件/tmp/cronpwd
应该出现,其中包含cron-commands当前目录的名称。别忘了再次从crontab中删除额外的行!
无论目录是什么,请检查运行脚本的用户是否实际可写。如果不是,那么输出就会丢失,并且无法将其恢复。
请注意,通过指定绝对路径或在命令开头显式更改当前目录,简单地使命令独立于当前工作目录可能是个好主意:
5 0 * * * /path/to/your/script.sh > /where/it/should/go/output.txt
5 0 * * * cd /where/it/should/go && /path/to/your/script.sh > output.txt
(该示例是用户的crontab,而不是系统crontab。)