很多时侯我们都须要定时执行脚本或则按量执行脚本,这里我们可以使用python也可以直接使用shell去编撰脚本文件,然后交给crontab去定时执行。这个系统服务默认是开启的linux循环执行脚本,使用crontab命令可以设置自己的计划任务。
cat /etc/crontab
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
在以上各个数组中深度linux系统,还可以使用以下特殊字符:
""代表所有的取值范围内的数字,如月份数组为,则表示1到12个月;
"/"代表每一定时间间隔的意思,如分钟数组为*/10,表示每10分钟执行1次。
"-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”LINUX社区,小时数组中0-23/2表示在0~23点范围内每2个小时执行一次。
","分散的数字(不一定连续),如1,2,3,4,7,9。
注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。
比如:
* * * * * command #每一分钟执行一次command
10,15 8-11 * * * command #上午8点-11点的第10、15分钟各执行一次command
*/1 * * * * root /usr/src/myapp/first.sh
每一分钟执行一次/usr/src/myapp/目录下的first.sh
现在我们开始从头写一个定时任务:
#! /bin/sh
echo "Hello World" >> /usr/src/myapp/1.txt #输出Hello World到/usr/src/myapp/1.txt文件
time1=$(date)
echo $time1 >> /usr/src/myapp/1.txt #打印当前时间到/usr/src/myapp/1.txt文件
echo >> /usr/src/myapp/1.txt
echo >> /usr/src/myapp/1.txt #输出两个空行分隔开
脚本文件写好之后linux循环执行脚本,我们去编撰下定时任务:
vim /etc/crontab
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
*/1 * * * * root /usr/src/myapp/first.sh
上面文件最后一行是我们新增的任务,执行频度是每分钟一次
保存文件,然后使其生效(这一步很重要!)
crontab /etc/crontab
这是我们使用:
crontab -l
也能看到我们刚才新增的任务
然后我们再去看下刚才脚本输出内容的文件:
是以一分钟的频度去执行的,证明我们的任务早已生效啦!
删除任务就是把刚才添加任务的那一行删除或则注释掉,然后保存生效就好啦!
在线估算各类定时网站: