第十三章 Linux系统定时任务Cron(d)服务应用实
1、什么是定时任务?
周期性的执行任务计划的软件,Linux里定时任务的常用软件crond。
2、使用定是软件了,可以每天,每小时按你需求重复的执行的一项任务。
例如:需要写一个程序实现自动备份,让定时任务软件来替你执行。
3、怎样用:
要想配置定时任务首先启动crond
(1)系统定时任务
(2)用户定时任务
在Linux系统中。
Cron是定时任务的软件名
Crond是服务进程名
Crondtab命令是用来设置定时任务规则的配置命令
要想配置定时任务首先启动crond
1、开启2、 关闭 3、 查看
开机自启动:
Crontab命令是用来设置定时任务规则的配置命令
内容放在那里?
定时任务内容存放位置ll /var/spool/cron/
以当前用户名作为文件名
-l l列表 查看已经设置的定时任务*
-d edit编辑定时任务*
-u user查看特定用户下的定时任务
Crontab -l ==cat /var/spool/cron/root
Crontab -e == vim /var/spool/cron/root可直接进入编辑模式,然后输入定时任务内容
编写定时任务的语法:
定时任务共六列:
第一列:分钟minute(0~59)
第二列:时hour(0-23)
第三列:日day of mouth(1-31)
第四列:月month(1-12)
第五列:周day of week(0-6) (sunday = 0 或7)
第六列:要执行命令或程序
特殊符号:
练习题:每分钟打印一次oldboy字符串
/dev/null黑洞设备(类似于删除)
范例13-3:每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生成不同的备份包名。
至少分三步:
1.命令行搞成功
准备工作:
[root@oldboyedu ~]# mkdir /var/www/html /data -p
具体命令:[root@oldboyedu ~]# tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/tar: Removing leading `/' from member names/var/www/html/[root@oldboyedu ~]# ll /datatotal 4-rw-r--r-- 1 root root 117 Mar 22 11:59 html_2019-03-22.tar.gz2、编写定时任务[root@oldboyedu ~]# crontab -l00 00 * * * tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/错了,不执行。。。。看报错日志。。。错误日志定时任务没有执行,出错了日志在哪里?出错日志/var/log/cronMar 22 12:03:01 oldboyedu CROND[18770]: (root) CMD (tar zcvf /data/html_$(date +)定时任务对%的要求,百分号要转义。\%正确答案:[root@oldboyedu ~]# crontab -l00 00 * * * tar zcvf /data/html_$(date +\%F).tar.gz /var/www/html/优秀的答案(企业里):
1.命令行执行cd /var/wwwtar zcf /data/html_$(date +%F).tar.gz ./html
2.尽量用脚本文件实现#mkdir /server/scripts -p #存放脚本的文件cd /server/scripts#cat bak.sh cd /var/wwwtar zcf /data/html_$(date +%F).tar.gz ./html命令行执行:/bin/sh /server/scripts/bak.sh
3、编辑定时任务#bak html dir by oldboy at 202010800 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null[root@oldboyedu /server/scripts]# crontab -l|tail -2#bak html dir by oldboy at 202010800 00 * * * /bin/sh /server/scripts/bak.sh &>/dev/null4、检查正式结果[root@oldboyedu /server/scripts]# ls -l /data
课下作业:
1)在每周6的凌晨3:15执行/home/shell/
2) collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句。
2) crontab在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh,怎么实现 ?
3) crontab文件由六个域组成,每个域之间用空格分割,其排列正确的为( )A、MIN HOUR DAY MONTH YEAR COMMAND B、MIN HOUR DAY MONTH DAYOFWEEK COMMAND C、COMMAND HOUR DAY MONTH DAYOFWEEK D、COMMAND YEAR MONTH DAY HOUR MIN
生产环境下的定时cron书写要领
12 出错或无法执行,检查/var/log/cron日志
为了在脚本中可以使用快捷命令需要在脚本中重新定义下。