crontab是linux下定时执行工具。例如有以下需求:
要在每个月的1号备份/home/temp/下的内容,生成以当时时间为名字的tar文件,并放在/home/bak/下。
1. 先创建shell脚本,例如在/home/temp/下创建bak.sh脚本,并输入:
#!/bin/bash
time=`date +%Y%m%d_%H%M%S`
tar cvzf /home/bak/$time.tar.gz /home/temp
2. chmod a+x /home/temp/bak.sh
3. vim /etc/crontab并在最后一行输入
* * 1 * * root /home/temp/bak.sh
保存,这时候更改就生效了。
crontab文件中前面有五个*号,代表五个数字,其含义和取值范围是:
分钟 0-59
小时 0-23
日 1-31
月 1-12
周 0-6 (0代表周日)
在后面的两项是用户和命令。
利用五个数字组合可以组合出我们想要的时间:
1. 每分钟:* * * * *
2. 每两小时:0 */2 * * *
3. 每个月的5号和每周一到周三的上午11点: 0 11 4 * 1-3
4. 每天的晚上8点到早上8点种的每两个小时:0 20-8/2 * * *