进入文件所在目录
![](https://img-blog.csdn.net/20180814182702894?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
为了保证此方法可行,我先在所在的目录创建一个测试小demo的脚本,想知道如何执行scrapy项目可以直接跳到后面
vi test.sh
编写一个每分钟往当前文件中的test.txt中写入111的脚本
![](https://img-blog.csdn.net/20180814183221343?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
编写crontab命令
crontab -e
*/1 * * * * sh ~/python_file/paimai/PAIMAI/test.sh # 代表每分钟执行一次
保存后就可以去查看命令是否执行,使用命令
tail -n 10 /var/log/cron
![](https://img-blog.csdn.net/20180814182350114?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
查看test.txt文件,成功执行
![](https://img-blog.csdn.net/20180814183957645?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
好了,demo执行成功,我们来看看定时执行scrapy项目如何设置
首先编写cron.sh脚本
vi cron.sh
#!/bin/sh
cd /root/python_file/paimai/PAIMAI/PAIMAI/spiders #进入到spider所在路径
nohup scrapy crawl bid_over >../main.log 2>&1 & #后台执行命令
再来编写crontab
crontab -e
0 19 * * * sh ~/python_file/paimai/PAIMAI/cron.sh #每天晚上7点定时执行
好了,定时执行命令成功
ps:
crontab基础命令:
crontab -e #编辑命令
crontab -l #列出已经编写的命令
/var/log/cron #查看定时任务执行的日志
service crond status #查看定时任务是否开启
![](https://img-blog.csdn.net/20180814185145305?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180814185231802?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3phaXNoaWppemhpZGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
附录一些参考例子:
#每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。
以下方法将每10秒执行一次
1 2 3 4 5 6 7 |
# crontab -e * * * * * / bin / date >> / tmp / date.txt * * * * * sleep 10 ; / bin / date >> / tmp / date.txt * * * * * sleep 20 ; / bin / date >> / tmp / date.txt * * * * * sleep 30 ; / bin / date >> / tmp / date.txt * * * * * sleep 40 ; / bin / date >> / tmp / date.txt * * * * * sleep 50 ; / bin / date >> / tmp / date.txt |
在设置定时执行的操作后,出现LINUX的邮件提示功能:You have new mail in /var/spool/mail/root
可以用root下执行这条命令
echo "unset MAILCHECK">> /etc/profile