【发布时间】:2012-12-18 04:33:03
【问题描述】:
我有 start.sh bash 脚本,通过 CRON JOB 在 ubuntu 服务器上运行
start.sh 包含下面提到的代码行
start.sh的路径是/home/ubuntu/folder1/folder2/start.sh
#!/bin/bash
crawlers(){
nohup scrapy crawl first &
nohup scrapy crawl 2nd &
wait $!
nohup scrapy crawl 3rd &
nohup scrapy crawl 4th &
wait
}
cd /home/ubuntu/folder1/folder2/
PATH=$PATH:/usr/local/bin
export PATH
python init.py &
wait $!
crawlers
python final.py
我的问题是,如果我自己在命令行上运行 start.sh,它会在 nohup.out 文件中输出
但是当它通过 cronjob 执行这个 bash 文件 (虽然脚本运行良好)它不会产生 nohup.out
如何在 nohup.out 中获得此 cronjob 的输出?
【问题讨论】:
-
你是如何/在哪里创建这个 nohup.out 文件的?请记住,cron 作业的默认工作目录是运行它们的用户 ID 的主目录。如果您为此文件使用相对路径,则您将相对于帐户的主目录,而不是您自己的 shell 当前目录
-
@MarcB 我是 linux 上的菜鸟 .. 每行都在 nohup 中附加输出,例如 nohup scrapy crawl 3rd & 我在 crontab 40 10 * * * /home/ubuntu/folder1/folder2/start 中添加了这个.sh
-
仅供参考:构造
python init.py & wait $!(分布在两行)是没有意义的;删除&并删除wait。这不是您的问题的一个因素;它也可以按书面方式工作。但这毫无意义。
标签: python bash ubuntu cron crontab