cronjob脚本创建的日志的位置



我以root用户身份运行一个cronjob脚本。脚本位于/root/scripts/myscript.py中在这个python脚本中,我写了一个类似的文件

log = open(os.path.basename(__file__) + ".log", "w+")
print("some text", file=log)

这应该创建一个名为myscript.py.log的文件,它确实做到了。但是这个文件位于/root/myscript.py.log中。为什么?我希望它在脚本目录中创建。

我使用Debian Squeeze并通过crontab-e作为根用户添加作业。

这是因为它取决于cron任务启动时的cwd,cron也可以更改目录,因此始终为cron运行的作业使用绝对路径名,或者从命令行传入绝对存根。

在您的情况下,crontab-e作为root,cron将作为root运行您的脚本,因此使用该用户的主目录。ie/root

最新更新