linux下的定时任务命令:crontab
管理任务
创建任务:
crontab -e
crontab -e
是以当前用户权限创建/编辑任务.
直接在这个文件后面添加任务:
0 9 * * * <command>
:表示每天9点定时执行
命令格式如下图:
*
表示any,,
表示and,-
表示范围,/
表示每隔。
查看任务
crontab -l
删除全部任务
crontab -r
如果删除某一个任务,用crontab -e
将它删除。
任务调试
开启日志
任务创建后因为各种原因,都可能不会执行。这时候只有在日志中查看任务是否运行。
修改
rsyslog
重启rsyslog
查看crontab
日志
cat /var/log/cron.log
通过邮件查看任务详细信息
如果在日志文件中出现:No MTA installed, discarding output
说明没有在系统中安装邮件应用。
这时可以安装postfix:
sudo aptitude install postfix
然后将选择本地,之后就可以通过本地邮件查看:
cat /var/mail/<user>
取消邮件通知
当任务运行正常后,可以把邮件通知取消掉,不然每次执行任务系统都会发送邮件。
在定时脚本的后面添加:
>/dev/null 2>&1
tips
用crontab执行python的scrapy爬虫脚本时,如果这样添加定时任务:
58 10 * * * python /home/das/project/SecPostsSpider/fbufspider/main.py
会报错误:
Scrapy 1.1.0 - no active project
Unknown command: crawl
Use "scrapy" to see available commands
应该先打开scrapy项目的目录,再到目录里执行python脚本:
20 11 * * * (cd /home/das/project/SecPostsSpider/fbufspider; python main.py)
其他的一些坑:参考这里
Comments