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
网友评论