crontab循环定时任务
常用、用途广泛
一、服务管理与访问控制
注意:当前用户创建任务,需要注意用户权限,进行用户更改后再行创建
10**** 指的是一天一小时中的第10分钟执行一次,0点10分执行1次、1点10分执行1次、2点10分执行1次......23点10分执行1次
*/10**** 指的是一天当中每隔10分钟执行1次
***** 指的是每分钟执行1次
0 8,12,16***指的是在8点整执行1次、12点整执行1次、16点整执行1次
0 5**1-6 指的是在周一到周六的早上5点整执行
*/n代表每隔多久执行1次
*/1**** 指的是每分钟
3、常用命令
crontab举例
五个*的作4
五个*的作3
五个*的作用2
五个*的作用
crontab -e
2、用户的crontab设置
crontab访问控制
1、crond服务管理与访问控制
crontab关于时间的例子
crontab的特殊符号含义
crontab -e进入编辑界面,命令输入:*****执行的任务
*号的意义
例如:
10****执行的命令:每个小时的第10分钟执行命令
*/10****执行的命令:每隔十分钟执行
crontab命令的访问控制
crontab是绑定用户的
执行时间:
crontab usage
每隔10分钟执行一次
*/10 * * * * a.sh
crontab *
截图时间的测试
crontab 循环定时任务
atq查看 at
crontab是服务器上的常规操作,必须安装服务
crond服务管理与访问控制,service crond restart chkconfig crond on
访问控制,有/etc/cron.allow 文件时,只有写入此文件的用户可以使用crondtab命令,没有写入的用户不能使用crondtab命令,同样如果有此文件,/etc/cron.deny 文件会被忽略,etc/cron.allow文件的优先级高
当系统中只有etc/cron.deny文件时,写入文件的用户不能使用crnodtab命令,没有写入文件的用户可以使用crontab命令
crondtab 凌晨4-5点访问量少
*号六个选项不能为空,最小是分钟,最大十月,定时任务中,不管直接写命令还是脚本写命令,最好都用绝对路径
crondtab -l 清除一个 crondtab -r清楚所有的定时
linux调度周期的设置
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几个小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)
注意:
10 * * * * /root/sh/ls #代表的是每个小时的第10分钟执行一次调度(不要理解为每10分钟执行一次)
*/10 * * * * /root/sh/sh #代表的是每10分钟执行一次调度(前面的*/10才是计算分钟的方法)
设置时间的特殊符号含义:
* 代表任何时间。比如第一个“*”就代表一个小时中每分钟执行一次的意思
, 代表不连续的时间。比如:“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如:“0 5 * * 1-6 命令”,代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如:“*/10 * * * *”,代表每隔10分钟就执行一遍命令。
1、crond服务管理与访问控制
服务管理
service crond restart #启动crontab服务
chkconfig crond on #开机时启动crontab服务
chkconfig --list | grep cron #查询crontab是否安装,并设置为开机自启
访问控制
当系统中有/etc/cron.allow文件时,只有写入此文件的用户可以使用crontab命令,没有 写入的用户不能使用crontal命令。同样如果有次文件,/etc/cron.deny文件会被忽略,/etc/cron.allow文件的优先级更高。
当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab命令。
2、用户的 crontab设置
crontab 【选项】
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
例: crontab -e #进入crontab编辑界面。会打开vim编辑你的工作
编辑范例: *****执行的任务
注意: 前面的5个星是调度周期设置
4、crontab注意事项
六个选项都不能为空,必须填写。如果不确定使用“*”代表任意时间
crontab定时任务,最小有效时间为分钟,最大有效时间是月。像2018年某时执行,3点30分30秒这样的时间都不能识别
在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都是以天为单位,非常容易让管理员混乱
在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都是用绝对路径。
系统循环定时任务---crontab
1、crond服务管理与访问控制
第一步: 确定服务是否安装
chkconfig --list | grep cron
service crond status
vi /etc/cron.deny #默认是cron.deny
访问控制
如果系统中有/etc/at.allow文件(白名单),那么只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令。同样如果有此文件,/etc/at.deny文件会被忽略,/etc/at.allow优先级更高
如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件(黑名单),那么写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab命令
2、用户的crontab设置
crontab [选项]
选项:
-e #当前用户编辑crontab定时任务
-l #查询crontab任务
-r #删除当前用户所有的crontab任务
crontab -e #当前用户进入crontab编辑界面,当前用户vim方式编辑
crontab -l #查看当前用户的crontab任务
crontab -r #删除当前用户的所有的定时的任务
crontab -e说明
第一个"*" 一小时的第几分钟 0-59
第二个"*" 一天当中的第几小时 0-23
第三个"*" 一月当中第几天 1-31
第四个"*" 一年当中第几个月 1-12
第五个"*" 一周中的星期几 0-7(0和7都代表星期日)
特殊符号 含义
* 代表任何时间。比如第一个"*"就代表一小时中每分钟都执行一次的意思
, 代表不连续的时间。比如"0 8,12,16 * * * 命令",就代表在每天的8点0分,12点 分,16点0分都执行一次命令
- 代表连续的时间范围。比如"0 5 * * 1-6命令",代表在周一到周六的凌晨5点0分执行命令
*/n 代表每隔多久执行一次。比如"/10 * * * * 命令",代表每隔10分钟就执行一篇命令
时间 含义
45 22 * * * 命令 在22点45分执行命令
0 17 * * 1 命令 每周1的17点0分执行命令
0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周一的0点0分都会执行。注意:星期几和几号最好不要同时出现,星期几和几号定义的都是天。非常容易让管理员混乱
注意事项:
六个选项都不为空,必须填写,不确定的用"*"代替
crontab定时任务,最小有效时间是分钟,最大时间范围是月
日期和星期最好不要在同一条命令中
命令最好(一定)用绝对路径执行
举例:
*/5 * * * * /bin/echo "11" >> /tmp/test
5 5 * * 2 /sbin/shutdown -r now #不建议使用
0 5 1,10,15 * * /root/sh/autobak.sh
crontab命令:
1、输入crontab -e,编辑命令文本
2、文本格式:*****命令
第一个*:小时当中的第几分钟
第二个*:一天当中的第几小时 0-23
第三个*:一个月当中的第几天
第四个*:一年当中的第几个月
第五个*:一周当中的星期几 0-7 0和7都表示周日
crontab命令
* * * * * .sh命令