linux下的定时任务命令:crontab

管理任务

创建任务:

crontab -e

crontab -e是以当前用户权限创建/编辑任务.

直接在这个文件后面添加任务:
0 9 * * * <command>:表示每天9点定时执行
命令格式如下图:


*表示any,,表示and,-表示范围,/表示每隔。

查看任务

crontab -l

删除全部任务

crontab -r

如果删除某一个任务,用crontab -e将它删除。

任务调试

开启日志

任务创建后因为各种原因,都可能不会执行。这时候只有在日志中查看任务是否运行。

修改rsyslog
sudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log #将cron前面的注释符去掉
重启rsyslog
sudo service rsyslog restart
查看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
Write a Comment