第一种方式
修改/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