功能描述
使用crontab命令可以针对个人用户维护crontab文件。比如创建、修改、查看及删除crontab条目。
命令语 法
crontab [-u ][配置文件] 或 crontab [-u ][-elr]
选项含义
选项
含义
-u
指定要设定计时器的用户名称。(注意:-u选项只有root用户可用)
-e
编辑该用户的计时器设置。
-l
列出该用户的计时器设置
-r
删除该用户的计时器设置
-i
删除用户的crontab前进行提示
-s
追加当前SELinux安全上下文字符串
crontab命令任务配置的格式
50 3 2 1 * /etc/init.d/sshd start
分钟 小时 日期 月份 星期 命令
字段
说明
分钟
取值为从0到59之间的任意整数
小时
取值为从0到23之间的任意整数
日期
取值为从1到31之间的任意整数
月份
取值为从1到12之间的任意整数
星期
取值为从0到7之间的任意整数,0或7代表星期日
命令
要执行的命令或程序脚本
时间数值的特殊表示方法
* 表示该范围内的任意时间
,表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每2小时
0 * */3 * * 每3天
使用crontab命令
脚本名称:/etc/init.d/crond
主要配置文件:
全局配置文件:/etc/crontab
[root@localhost ~]# nl /etc/crontab
1 SHELL=/bin/bash
2 PATH=/sbin:/bin:/usr/sbin:/usr/bin
3 MAILTO=root
4 HOME=/
5 # For details see man 4 crontabs
6 # Example of job definition:
7 # .---------------- minute (0 - 59)
8 # | .------------- hour (0 - 23)
9 # | | .---------- day of month (1 - 31)
10 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
11 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
12 # | | | | |
13 # * * * * * user-name command to be executed
系统默认的设置:/etc/cron.*/
[root@localhost ~]# ls /etc/|grep "cron.*"
cron.d
cron.daily
cron.deny
cron.hourly
cron.monthly
cron.weekly
用户定义的设置:/var/spool/cron/用户名
示例
以root用户列出crontab
[root@localhost ~]# crontab -u zhangsan -l
以普通用户zhangsan列出crontab
[zhangsan@localhost ~]# crontab -l
对/var/spool/zhangsan文件做备份
[zhangsan@localhost ~]# crontab -l >/var/spool/zhangsan
以用户root删除crontab
[root@localhost ~]# crontab -u zhangsan -r
以普通用户zhangsan删除crontab
[zhangsan@localhost ~]# crontab -r
以zhangsan用户登录恢复丢失的crontab文件。
[zhangsan@localhost ~]# crontab -r
[zhangsan@localhost ~]# crontab /home/zhangsan/zhangsancron
创建crontab
[root@localhost ~]# crontab -e
对/var/spool/cron/zhangsan文件做备份。
[root@localhost ~]# crontab -l > /home/zhangsan/zhangsancron
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每1分钟执行一次myCommand
* * * * * myCommand
每小时的第3和第15分钟执行
3,15 * * * * myCommand
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart