我有一个python脚本,上传到24/7全天候的Web服务器上。我想自动化这个脚本,以便它自动每小时运行一次。这可能吗?我遇到了cron工作的东西,但我不熟悉如何实现这一目标。任何帮助或示例都会有所帮助。
答案 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文件,也就是假设vi
或vim
是你的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/文件管理它的信息。