发布于 3年前

使用crontab出现crontab: installing new crontab时

sudo crontab -e

00 12 * * * python3 /home/admin/spiders_crawl/NanPingHorse/np_start.py

20 14 * * * /usr/local/bin/python3 /home/admin/spiders_crawl/NanPingHorse/np_start.py

25 14 * * * cd /home/admin/spiders_crawl/NanPingHorse/NanPingHorse/spiders && ~/.local/bin/scrapy crawl NanPing

25 17 * * * cd /home/admin/workspace/Project/spider_projectc && ~/.pyenv/py3/bin/scrapy crawl cshafc > /tmp/logfile/cshafc.log 2>&1

每天中午12点运行程序

今天在使用完crontab后(crontab -e),每次都出现crontab: installing new crontab的提示

用crontab -e 编辑的任务在crontab: installing new crontab后三分钟之内是不会执行的,所以你在测试的时候,至少时间后推三分钟!

控制台回显“crontab:installing new crontab” 表示添加调度任务成功。

第一种方式

修改/etc/crontab文件,这种方式是系统的周期任务,只能root用户才可以执行

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

其中MAILTO=root表示如果执行指定命令时发生了错误,错误信息发送给谁

自动执行命令

minute # 表示分钟

hour # 表示小时

day # 表示日期

month # 表示月份

week # 表示星期,0和7表示周日,1-6各表示周一到周六

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段条件下每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,"1,2,5,7,8,9"

中杠(-):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示"2,3,4,5,6"

正斜线(/):可以用正斜线指定时间的间隔频率,例如"0-23/2"在用hour表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

例如

* * * * * root /opt/shell.sh 表示每分钟执行/opt/shell.sh目录

注意:shell.sh中如果有文件操作,那么shell.sh中的文件或目录需要绝对路径

第二种方式

crontab -e命令,这种方式是用户的周期任务,所有用户都可以使用,会自动写入到/var/spool/cron/usename中

执行该命令后将需要执行的周期任务写进去即可

例如

* * * * * root /opt/a.sh

如果没有执行可以重启服务service crond restart

©2020 edoou.com   京ICP备16001874号-3