我以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 并以root用户身份 crontab -e 添加作业。
答案 0 :(得分:2)
这是因为它取决于cron任务启动时的cwd,cron也可以更改目录所以总是使用cron运行的作业的绝对路径名,或者从命令行传入绝对存根。
在你的情况下crontab -e作为root,cron将以root身份运行你的脚本,因此使用该用户的主目录。即/ root