crontab定时任务执行scrapyd爬虫

作者: 鲁智深 分类: scrapy 发布时间: 2019-10-10 19:56

crontab系统自带的调度命令,通过crontab命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

mac 查看 crontab 是否启动

1
sudo launchctl list | grep cron

crontab服务的重启关闭,开启

mac系统下

1
2
3
sudo /usr/sbin/cron start
sudo /usr/sbin/cron restart
sudo /usr/sbin/cron stop

ubuntu:

1
2
3
$sudo /etc/init.d/cron start
$sudo /etc/init.d/cron stop
$sudo /etc/init.d/cron restart

这里用它来完成scrapyd部署爬虫定时任务推送功能。

crontab命令

1
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

命令参数

-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并导入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

使用-l参数列出crontab文件

1
crontab -l

使用-r参数删除crontab文件

1
crontab -r

删除文件后,定时任务不会在执行

crontab的文件格式

基本格式 :
*  *  *  *  *  command
分  时  日  月  周  命令

第1列分钟0~59

第2列小时0~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~7(0和7表示星期天)

第6列要运行的命令

追加 crontab 定时任务,每分钟触发,会已vim方式呈现

1
crontab -e

执行scrapyd爬虫命令

1
* * * * * curl http://localhost:6800/schedule.json -d project=xinchen -d spider=douban_spider

再次查看定时任务列表,可以看到定时任务已经添加

1
crontab -l
1
2
3
4
bash-3.2$ crontab -l
* * * * * curl http://localhost:6800/schedule.json -d project=xinchen -d spider=douban_spider
* * * * * curl http://localhost:6800/schedule.json -d project=xinchen -d spider=douban_tv_spider
* * * * * curl http://localhost:6800/schedule.json -d project=xinchen -d spider=douban_variety_show

更多例子:

1、每分钟执行一次
* * * * *

2、每隔一小时执行一次
00 * * * *
or
* */1 * * * (/表示频率)

3、每小时的15和30分各执行一次
15,45 * * * * (,表示并列)

4、在每天上午 8- 11时中间每小时 15 ,45分各执行一次
15,45 8-11 * * * command (-表示范围)

5、每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command

6、每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command

导入预先编好的脚本文件

一般来说,crontab用-e调出vi来编写,但是在实际工作中经常有这种情况是,编程好了crontab文件,需要导入到生产机器上去。

1
crontab filename

更多命令

名称 : crontab

使用权限 : 所有使用者

使用方式 :

crontab file [-u user]-用指定的文件替代目前的crontab。

crontab-[-u user]-用标准输入替代目前的crontab.

crontab-1[user]-列出用户目前的crontab.

crontab-e[user]-编辑用户目前的crontab.

crontab-d[user]-删除用户目前的crontab.

crontab-c dir- 指定crontab的目录。

更多关于crontab的内容

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注