crontab
周期性执行任务
前言
在日常的系统运维过程中,我们经常会遇到需要定期执行某个脚本,或者定期清理日志,磁盘空间等。
一、使用步骤
rpm -qa | grep cron
启动服务
/etc/init.d/crond start 默认是启动的
chkconfig |grep crond 默认2 3 4 5 是启动的
chkconfig crond on
运行方式
/var/spool/cron 工作将以文本文件的方式写入此目录内以用户名命名的文件,root账户使用crontab后,他的工作就会记录到/var/spool/cron/root文件中,执行的任务会记录到日志文件中/var/log/cron
配置
/etc/init.d/crond start 默认是启动的
chkconfig |grep crond 默认2 3 4 5 是启动的
chkconfig crond on
crontab -e 编辑周期性计划任务
29 10 * * * /bin/mkdir /root/桌面/testa
时间
分钟 小时 日 月 周 动作(命令或者脚本)
0-59 0-23 1-31 1-12 0-7
5
*/5
5-9
5,10,12
5-9,9-10
时间的写法
* 任意时间
, 分隔 0 1,7 * * * 1点和7点进行
- 一段时间 1-5 2 * * * 2点的1分钟 2分钟 3分钟 4分钟 5分钟进行
/n 每隔n单位间隔 * */1 * * * 每1小时进行 */5 * * * * 每隔5分钟进行
1-9/2 1,3,5,7,9
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
tom用户每一小时清空临时盘/tmp
* */1 * * * /bin/rm -rf /tmp/*
查看计划任务
crontab -l //查看当前用户的计划任务
crontab -l -u tom //查看指定用户的计划任务
crontab -lu tom
删除计划任务
crontab -r //删除当前用户的计划任务
crontab -r -u tom //删除指定账户的计划任务
crontab -ru tom
crontab -e
1 * * * * touch a //*:01分钟创建文件
发邮件 好朋友生日 5月2日 tom 要给 jim 发邮件 每年发
crontab -e -u tom
0 0 1 5 * mail jim < /home/tom/生日快乐.txt
每星期三的1:00去备份/etc下所有文件,格式为etc.tar.gz20160809
0 1 * * 3 /bin/tar -cvzf etc.tar.gz`/bin/date +%Y%m%d` /etc
每星期一的8:01去执行脚本
crontab -e
1 8 * * 1 /bin/bash /tmp/a.sh 命令写绝对路径 脚本内的命令写绝对路径
每月1号的凌晨3点重启电脑
0 3 1 * * /sbin/reboot
每周三的22:00 将/etc 目录备份,格式为 /tmp/etc.bak.当天日期
# vim a.sh
#! /bin/bash
/bin/cp -ar /etc /tmp/etc.bak.`/bin/date+%Y%m%d`
# crontab -e
0 22 * * 3 /bin/bash /root/桌面/a.sh
目录