linux定时任务
首先,定义一个任务文件,取名为niubi.crontab,比如放在/srv/niubi/下面:
25 19 * * * cd /srv/niubi/ && /usr/local/bin/scrapy crawl niubi.com
在里面写入如上语句,指的是在每天19时25分,先跑到/srv/niubi/目录下,然后执行scrapy命令到niubi.com上抓些东西。
然后,
crontab /srv/niubi.crontab
/etc/init.d/crond restart
查看有什么定时任务:
crontab -l
当然,在这之前,你要确保已经安装了crontab, CentOS的话如下:
yum install -y vixie-cron
因为这个博客里到目前为此大部分技术内容是关于python及django的,所以特别提醒下,如果要执行脚本,应该要用如下的语句:
25 19 * * * cd /srv/project_dir/ && /usr/local/bin/python script.py
注意不能用下面这种语句:
25 19 * * * cd /srv/project_dir/ && python script.py
要把写出环境变量的完整目录。
以上适合CentOS 6.X,CentOS 7请参考以下链接:
https://www.rosehosting.com/blog/automate-system-tasks-using-cron-on-centos-7/
好像上面那个链接挂了,简单写一下命令如下:
修改下面文件:
/etc/crontab
注意:在CentOS 7里,要指定有权限的用户才能正常执行,如下:
25 19 * * * root cd /srv/project_dir/ && /usr/local/bin/python script.py
查看状态:
systemctl status crond.service
启动,停止,重启:
systemctl start crond
systemctl stop crond
systemctl restart crond