一:安装
ubuntu安装
安装:apt-get install cron
Centos安装
yum install vixie-cron
yum install crontabs
二:启动
ubuntu启动
安装:apt-get install cron
启动:service cron start
重启:service cron restart
停止:service cron stop
检查状态:service cron status
查询cron可用的命令:service cron
检查Cronta工具是否安装:crontab -l
Centos启动
# 启动服务
service crond start
# 关闭服务
service crond stop
# 重启服务
service crond restart
# 重新载入配置
service crond reload
# 查看状态
service crond status
# 设置开机自动启动crond服务:
chkconfig crond on
# 开机级别的crond服务运行情况 ,2、3、4、5级别开机会自动启动crond服务
chkconfig –list crond
# 取消开机自动启动crond服务
chkconfig crond off
systemctl restart crond.service
systemctl status crond.service
三: 执行脚本(两种)
1.在命令行输入
# 添加相应的任务,wq存盘退出。
crontab -e # 配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务
# 列出当前的所有调度任务
crontab -l
# 列出用户jp的所有调度任务
crontab -l -u jp
# 删除所有任务调度工作
crontab -r
2.编辑文件
Linux下的任务调度分为两类:系统任务调度和用户任务调度。Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。在CentOS系统中,
直接编辑/etc/crontab 文件,即 vi /etc/crontab,添加相应的任务。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # 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
前四行是有关设置cron任务运行的环境变量。
SHELL:变量的值指定系统使用的SHELL环境(该样例为bash shell),
PATH:变量定义了执行命令的路径。
MAILTO: Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=“”),电子邮件不会被发送。
HOME: 执行命令或脚本时HOME变量可用来设置基目录
直接用户定义 所有用户定义的crontab 文件都被保存在 /var/spool/cron/crontabs 目录中。其文件名与用户名一致
四:命令详解
格式:
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
- -u user:用于设定某个用户的crontab服务; file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
- -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
- -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
- -r:从/var/spool/cron目录中删除某个用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。
分钟 小时 日 月 星期 命令
第1列表示分钟1~59 每分钟用或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列 表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 几个特殊符号的含义: “”代表取值范围内的数字, “/”代表”每”, “-”代表从某个数字到某个数字, “,”分开几个离散的数字
```
五:配置实例
每一分钟执行一次command(因cron默认每1分钟扫描一次,因此全为*即可)
* * * * * command
每小时的第3和第15分钟执行command
3,15 * * * * command
每天上午8-11点的第3和15分钟执行command:
3,15 8-11 * * * command
每隔2天的上午8-11点的第3和15分钟执行command:
3,15 8-11 */2 * * command
每个星期一的上午8点到11点的第3和第15分钟执行command
3,15 8-11 * * 1 command
每晚的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
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
每小时执行/etc/cron.hourly目录内的脚本
0 1 * * * root run-parts /etc/cron.hourly
Comments