crontab命令
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
开启crond服务:
# service crond start/stop/status
开机自启动crond:
# chkconfig --add crond
# chkconfig --level 35 crond on
格式:分、时、日、月、周
追加周期任务:crontab -e
覆盖原有的周期任务:crontab
查看周期任务:crontab -l
删除周期任务:crontab -r
以某用户的身份来控制cron表:crontab -u 用户名
退出任务:ctrl + d
用户的计划任务建立后是存放在/var/spool/cron这个目录
crond使用技巧:
先建一个.sh脚本,再用crond执行脚本即可
示例:
1、周期性备份
# vi /root/tar.sh
#!/bin/sh
Date=`date +%y%m%d`
echo "usr back begin at `date +%H:%M:%S`" >> /logs/$Date/back.log
tar czf /root/`date +%y%d%m%H%M%S`.tar.gz /usr
echo "usr back end at `date +%H:%M:%S`" >> /logs/$Date/back.log
:wq
注:对目录usr进行tar备份,并记录开始备份和结束备份的时间
# chmod +x tar.sh
# crontab -e
30 17 * * * /bin/sh /root/tar.sh
2、周期性scp传输文件
# vi /root/scp.sh
#!/bin/sh
Date=`date +%y%m%d`
echo "scp begin at `date +%H:%M:%S`" >> /logs/$Date/back.log
scp -p /root/*.gz
echo "scp end at `date +%H:%M:%S`" >> /logs/$Date/back.log
:wq
注:把/root下的所有以.gz结尾的文件scp(远程传输)到192.168.1.10的/root下,并记录scp开始和结束的时间
# chmod +x /root/scp.sh
# crontab -e
00 18 * * * /bin/sh root/scp.sh
其它示例:
每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 * * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
*/20 6-11 * 12 * /usr/bin/backup 周一到周五每天下午 5:00 寄一封信给 alex_mail_name :
0 17 * * 1-5 mail -s "hi" alex_mail_name < /tmp/maildata 每月每天的0点20分,2点20分,4点20分....执行 echo "haha"
20 0-23/2 * * * echo "haha"