Linux系统crontab默认是开机启动的
[root@localhost ~]# /etc/init.d/crond status crond (pid 1044) 正在运行...
系统级别的计划任务:
[root@localhost ~]# /etc/cron. cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
用户级别的计划任务:
我们看下系统定义的crontab命令格式:
[root ~]# vi /etc/crontab
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # 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 分 时 日 月 周 用户 执行的命令取值范围分别为:
【分:0-59】【时:0-23】【日:1-31】【月:1-12】【周:0-6 ( 周日可以用0或7表示 )】
常用命令:
# crontab -e 创建一个计划任务 # crontab -l 显示计划任务 # crontab -r 删除计划任务 下面我们创建一个简单的计划任务:[root@localhost ~]# crontab -e 21 16 * * * echo `date` > /tmp/date.txt ## 每天16:21分把当前系统时间写入/tmp/date.txt
root@localhost ~]# cat /tmp/date.txt Mon Sep 12 16:21:01 CST 2016 1 3 3,6,9 * * /bin/bash /tmp/shell/databkup.sh ## 每月3,6,9 这几天的.03:01分,执行数据库备份脚本
如何查看最近crontab执行的日志记录,可以用下面的2个方式来查看:
[root@localhost ~]# tail /var/log/cron ## 方式一 [root@localhost ~]# tail -f /var/spool/mail/root ## 方式二
例:
(1)删除过期文件
在用户目录下查找修改时间在3天前的“.txt”文件并删除
$find ~/data/ -mtime +3 -name "*.txt" -exec rm {} \;
在用户目录下查找修改时间在3天内的“.txt”文件并删除
$find ~/data/ -mtime -3 -name "*.txt" -exec rm {} \;
定时删除 #每天晚上9.30执行一次文件删除操作,删除三天前的日志
$30 21 * * * find ~/data/ -mtime +3 -name "*.log" -exec rm {} \;
(2) 比如定期备份服务器上面某个目录下的数据,并且打包到另一个目录下
#! /bin/bashdate=$(date -d '+0 days' '+%Y-%m-%d')cd /data/tomcat8029_report/tar -zcpf "/data/resultBak/resultBak-"$date".tar.gz" ./result
使用crontab定时备份(每天00:00分备份一次)
$crontab -e0 0 * * * /bin/bash /data/tomcat8029_report/bakResultSh.sh