临时文件位置,我将查询保存在shell脚本中

时间:2015-08-27 12:21:59

标签: linux shell cron

我遇到了与cron有关的问题。 假设在shell脚本中,我正在运行查询,并且输出存储器被存储到临时文件中。该临时文件的位置是什么?以及如何在shell脚本中删除?

2 个答案:

答案 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。)