自动化Python脚本

时间:2012-10-29 23:36:44

标签: automation cron

我有一个python脚本,上传到24/7全天候的Web服务器上。我想自动化这个脚本,以便它自动每小时运行一次。这可能吗?我遇到了cron工作的东西,但我不熟悉如何实现这一目标。任何帮助或示例都会有所帮助。

2 个答案:

答案 0 :(得分:1)

使用

打开您的cron作业文件
crontab -e

添加此行

* 0 * * *  /path/to/my/script

我建议使用bash脚本或其他东西检查进程是否已在运行。

if [ `ps -u USERNAME | grep -i PROCESSNAME | wc -l` -lt 1 ]
then
  nohup python main.py &
fi

修改

输入命令crontab -e,然后按Enter键。你的屏幕会变黑,一堆~偏离一边。按i您现在处于插入模式。键入* 0 * * * /path/to/my/script,确保这是脚本的绝对路径。按Esc,然后输入:x并按Enter键。这应该保存cron文件,也就是假设vivim是你的cron文件的默认编辑器。

附注

还要确保您的脚本是可执行的,chmod 777 myscript.py应该可以解决问题,但请熟悉chmod和权限。

还要确保将#/python/version/to/use作为python文件中的第一行。

答案 1 :(得分:1)

首先:问问自己数据是否应该是动态的而不是静态的。可以通过数据库或cgi脚本更好地访问动态数据。

第二:阅读手册。 crontab是用于管理cron作业的程序。网络搜索可以为您提供更深入的信息(知道要击中的指甲是战斗的一半)。 man crontab在计划方面没什么帮助,但是如果它没有像你期望的那样编辑文件,可以指点程序。

第三:通过执行'哪个python'来确定你的python运行的位置。并将描述符添加到文件的顶部。就我而言,#!/ usr / bin / python

第四步:将你的pyhton脚本放在适当的位置,也许是/ usr / local / sbin /,如果它足够重要并且你有权限。使用文件上的chmod 775使文件可执行。运行该文件以确保它按预期执行。

第五步:使用crontab -e编辑cron作业表表如果你不能自己运行它,请尝试在sudo下运行它(即sudo crontab -e)。

第六:添加一行为0 * * * * /myPath/myfile.py

每次分钟变为00时都会运行。维基百科说@hourly应该有效,但我从未尝试过。

格式如下

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 6) (0 is Sunday)   
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

第七:测试测试。

crontab - l列出了cron作业规范。

当cron执行时,可能必须存在诸如$ PYTHONPATH之类的环境变量。

如果crontab中有6个字段,则第一个可能是秒。

总有一天你想记录seomthing的输出。阅读有关在/ var / logs中创建日志文件目录以及如何使用/etc/logrotate.d/文件管理它的信息。