【问题标题】:Cron job output in wrong Linux folder [closed]错误的 Linux 文件夹中的 Cron 作业输出 [关闭]
【发布时间】:2016-03-27 15:25:11
【问题描述】:

这是我在这里的第一篇文章。我是 Stack Overflow 的忠实粉丝。这是我第一次找不到我的一个问题的答案。

这是场景:

在我的 Linux 系统中,我不是管理员或 root。当我运行 Python 脚本时,输出出现在原始文件夹中,但是当我运行与 Cron 作业相同的 Python 脚本时,它出现在我的帐户主文件夹中。我可以做些什么来将输出定向到所需的文件夹吗?我确实有正确的 shebang 路径。

谢谢!

【问题讨论】:

    标签: python linux path cron


    【解决方案1】:

    您可以像这样指定 cronjob 的输出:

    $ crontab -e
    59 23 * * * python /home/nodeman/documents/myscripts/my-script.py > /home/nodeman/logs/my-script.log 2>&1
    

    【讨论】:

    • 或者你可以使用59 23 * * * ( cd /some/where; python my.py; )
    【解决方案2】:

    如果输出来自 python 脚本内部,您可以将 cron 中的条目替换为:

      python yourscript.py
    

     (cd thepath && python yourscript.py)
    

    如果是 stderr 标准输出,你应该改用:

     (cd thepath && python yourscript.py >> output.log 2>&1)
    

    我个人更喜欢在 .bashrc 引用的本地 PYTHONPATH 中使用包装 bash 脚本或真正的本地 python 安装,而不是从“开发”路径。当您需要/想要修改脚本中的任何内容时,它具有不需要修改 crontab 条目的显着优势。

    【讨论】:

      【解决方案3】:

      感谢您进一步搜索后的回复,我发现这个有效:

      */1 * * * * /home/ranveer/vimbackup.sh >> /home/ranveer/vimbackup.log 2>&1

      【讨论】:

        猜你喜欢
        • 2017-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 2017-05-15
        相关资源
        最近更新 更多