[root@oldboyedu ~] # cd /etc/cron.
cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
[root@oldboyedu ~] # cd /etc/cron.
cron.daily 每天定时执行同步任务
cron.hourly 每小时定时执行同步任务
cron.monthly 每个月定时执行同步任务
cron.weekly 每星期定时执行同步任务
cron.deny 限制哪些用户不可以使用定时任务进行配置
13.3.1.1 一个命令
crontab -l:查看配置的定时任务
[root@oldboyedu ~] # crontab -l
30 2 * * * cp -rf /etc/hosts /etc/hosts.bak
[root@oldboyedu ~] #
crontab -e:编写定时任务
[root@oldboyedu ~] # crontab -e
no crontab for root - using an empty one
30 2 * * *
crontab -r:清空定时任务配置的任务信息
[root@oldboyedu ~] # crontab -l 查看定时任务信息
#30 */1 * * * cp /etc/hosts /etc/hosts_lyx.bak
#*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
#*/5 * * * * sh /server/scripts/ntpdate_sync.sh & > /dev/null
#* * * * * tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts
#* * * * * sh /server/scripts/tar_sync.sh & >/dev/null
[root@oldboyedu ~] # crontab -r 清除定时任务信息
[root@oldboyedu ~] # crontab -l 再次查看发现已经没有信息
no crontab for root
[root@oldboyedu ~] #
13.1.1.2 俩个文件
13.1.1.2.1 root用户设置定时任务的配置文件
[root@oldboyedu ~] # ll /var/spool/cron/root root用户设置定时任务的配置文件
-rw------- 1 root root 44 Oct 2 15:25 /var/spool/cron/root
[root@oldboyedu ~] #
13.1.1.2.2 root用户定时任务的日志文件
[root@oldboyedu ~] # tail -f /var/log/cron root用户定时任务的日志文件
Oct 2 19:30:01 oldboyedu CROND[8172]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 19:40:01 oldboyedu CROND[8258]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 19:50:01 oldboyedu CROND[8345]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 20:00:01 oldboyedu CROND[8431]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 2 20:01:02 oldboyedu CROND[8444]: (root) CMD (run-parts /etc/cron.hourly)
Oct 2 20:01:02 oldboyedu run-parts(/etc/cron.hourly)[8444]: starting 0anacron
Oct 2 20:01:02 oldboyedu run-parts(/etc/cron.hourly)[8453]: finished 0anacron
atd每天只能执行at命令一次,不能循环使用
* * * * * 接文件和脚本
第一个* 分(0-59) (每分钟)
第二个* 小时(0-23) (每小时)
第三个* 天数(1-31) (每天)
第四个* 月数(1-12) (每月)
第五个* 周数(0-6) (每周)
警告:天数和周数不能同时指定
5 * * * * 指定每小时的第5分钟执行一次
30 5 * * * 指定每天的 5:30 执行
30 7 8 * * 指定每月8号的7:30分执行
30 5 8 6 * 指定每年的6月8日5:30执行
30 6 * * 0 指定每星期日的6:30执行[注:0表示星期天,1表示星期1,
以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。
30 3 10,20 * * 每月10号及20号的3:30执行[注:","用来连接多个不连续的时段
25 8-11 * * * 每天8-11点的第25分钟执行[注:"-"用来连接连续的时段
*/15 * * * * 每15分钟执行一次 [即每个小时的第0 15 30 45 60分钟执行
30 6 */10 * * 每个月中,每隔10天6:30执行一次[即每月的1、11、21、31日是的6:30执行一次
*/n 表示出现n的倍数/小时/天/月/周
n-m 表示在n-m的时间段内进行备份
n,m 表示在n和m的时间段内进行备份
n-m/2 表示在n-m时间段内每隔2个小时进行备份
13.3.1.1 编写定时任务配置
[root@oldboyedu ~] # crontab -l
30 2 * * * cp /etc/hosts /etc/hosts_lyx.bak
[root@oldboyedu ~] #
13.3.1.2 修改时间为20191003 2:29:40
[root@oldboyedu ~] # date -s "20191003 2:29:40"
Thu Oct 3 02:29:40 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 02:29:42 CST 2019
13.3.1.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron 查看定时任务日志
Oct 2 21:03:23 oldboyedu crontab[9129]: (root) REPLACE (root)
Oct 2 21:03:23 oldboyedu crontab[9129]: (root) END EDIT (root)
Oct 3 02:30:21 oldboyedu crontab[9180]: (root) LIST (root)
Oct 3 02:30:27 oldboyedu CROND[9183]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 3 02:30:27 oldboyedu CROND[9184]: (root) CMD (cp /etc/hosts /etc/hosts_lyx.bak)
13.3.1.4 查看配置是否成功
[root@oldboyedu ~] # ll /etc/hosts_lyx.bak 备份成功
-rw-r--r-- 1 root root 158 Oct 3 02:30 /etc/hosts_lyx.bak
[root@oldboyedu ~] #
13.3.2.1 编写定时任务配置
[root@oldboyedu ~] # crontab -e
30 */1 * * * cp /etc/hosts /etc/hosts_lyx.bak
13.3.2.2 修改时间
[root@oldboyedu ~] # date -s "20191003 9:29:50" 点29分40秒
Thu Oct 3 09:29:50 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 09:29:52 CST 2019
13.3.2.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron 查看日志备份成功
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) REPLACE (root)
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) END EDIT (root)
Oct 3 02:38:01 oldboyedu crond[1269]: (root) RELOAD (/var/spool/cron/root)
Oct 3 09:30:27 oldboyedu CROND[9296]: (root) CMD (cp /etc/hosts /etc/hosts_lyx.bak)
Oct 3 09:30:27 oldboyedu CROND[9297]: (root) CMD (/usr/lib64/sa/sa1 1 1)
13.3.2.4 查看配置是否成功
[root@oldboyedu ~] # ll /etc/hosts_lyx.bak
-rw-r--r-- 1 root root 158 Oct 3 09:30 /etc/hosts_lyx.bak
[root@oldboyedu ~] #
13.3.3.1 编写定时任务配置
[root@oldboyedu ~] # crontab -e
30 9-11 * * * cp /etc/hosts /etc/hosts_lyx.bak
13.3.3.2 修改时间
[root@oldboyedu ~] # date -s "20191003 9:29:50" 点29分40秒
Thu Oct 3 09:29:50 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 09:29:52 CST 2019
13.3.3.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron 查看日志备份成功
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) REPLACE (root)
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) END EDIT (root)
Oct 3 02:38:01 oldboyedu crond[1269]: (root) RELOAD (/var/spool/cron/root)
Oct 3 09:30:27 oldboyedu CROND[9296]: (root) CMD (cp /etc/hosts /etc/hosts_lyx.bak)
Oct 3 09:30:27 oldboyedu CROND[9297]: (root) CMD (/usr/lib64/sa/sa1 1 1)
13.3.3.4 查看配置是否成功
[root@oldboyedu ~] # ll /etc/hosts_lyx.bak
-rw-r--r-- 1 root root 158 Oct 3 09:30 /etc/hosts_lyx.bak
[root@oldboyedu ~] #
错误,这种写法错误
在定时任务的配置中,不能将日期和周进行同时配置
13.3.5.1 编写定时任务配置
[root@oldboyedu ~] # crontab -e
30 9,11 * * * cp /etc/hosts /etc/hosts_lyx.bak
13.3.3.2 修改时间
[root@oldboyedu ~] # date -s "20191003 9:29:50" 点29分40秒
Thu Oct 3 09:29:50 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 09:29:52 CST 2019
13.3.3.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron 查看日志备份成功
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) REPLACE (root)
Oct 3 02:37:47 oldboyedu crontab[9242]: (root) END EDIT (root)
Oct 3 02:38:01 oldboyedu crond[1269]: (root) RELOAD (/var/spool/cron/root)
Oct 3 09:30:27 oldboyedu CROND[9296]: (root) CMD (cp /etc/hosts /etc/hosts_lyx.bak)
Oct 3 09:30:27 oldboyedu CROND[9297]: (root) CMD (/usr/lib64/sa/sa1 1 1)
13.3.3.4 查看配置是否成功
[root@oldboyedu ~] # ll /etc/hosts_lyx.bak
-rw-r--r-- 1 root root 158 Oct 3 09:30 /etc/hosts_lyx.bak
[root@oldboyedu ~] #
13.4.1.1 错误示范
13.4.1.1.1 配置定时任务
[root@oldboyedu ~] # crontab -l
*/5 * * * * ntpdate ntp1.aliyun.com
You have new mail in /var/spool/mail/root
[root@oldboyedu ~] #
13.4.1.1.2 修改时间
[root@oldboyedu ~] # date -s "20191003 9:49:50"
Thu Oct 3 09:49:50 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 09:49:51 CST 2019
13.4.1.1.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron
Oct 3 09:45:12 oldboyedu crontab[9480]: (root) REPLACE (root)
Oct 3 09:45:12 oldboyedu crontab[9480]: (root) END EDIT (root)
Oct 3 09:50:12 oldboyedu crond[1269]: (root) RELOAD (/var/spool/cron/root)
Oct 3 09:50:12 oldboyedu CROND[9502]: (root) CMD (ntpdate ntp1.aliyun.com)
Oct 3 09:50:12 oldboyedu CROND[9503]: (root) CMD (/usr/lib64/sa/sa1 1 1)
13.4.1.1.4 查看配置是否成功
[root@oldboyedu ~] # date
Thu Oct 3 09:50:31 CST 2019
[root@oldboyedu ~] #
结论;这样配置出来的时间没有进行同步
13.4.1.2 正确示范
利用命令的绝对路径来备份
13.4.1.2.1 采用绝对路径进行编写
[root@oldboyedu ~] # crontab -l
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
13.4.1.2.2 修改时间
[root@oldboyedu ~] # date -s "20191003 9:29:50"
Thu Oct 3 09:29:50 CST 2019
[root@oldboyedu ~] # date
Thu Oct 3 09:29:51 CST 2019
13.4.1.2.3 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron
Oct 3 09:57:21 oldboyedu crontab[9585]: (root) REPLACE (root)
Oct 3 09:57:21 oldboyedu crontab[9585]: (root) END EDIT (root)
Oct 3 09:29:59 oldboyedu crond[1269]: (root) RELOAD (/var/spool/cron/root)
Oct 3 09:30:01 oldboyedu CROND[9644]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 3 09:30:01 oldboyedu CROND[9645]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
13.4.1.2.4 查看更新是否成功
[root@oldboyedu ~] # date
Wed Oct 2 21:40:43 CST 2019 更新成功
[root@oldboyedu ~] #
脚本完成
13.4.1.2.5 编写脚本
[root@oldboyedu ~] # cat /server/scripts/ntpdate_sync.sh 编写ntpdate_sync.sh脚本
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
echo $PATH &>/tmp/oldboy.txt
ntpdate ntp1.aliyun.com
[root@oldboyedu ~] #
13.4.1.2.6 配置定时任务
[root@oldboyedu ~] # crontab -e
*/5 * * * * sh /server/scripts/ntpdate_sync.sh 将脚本配置到定时任务里面
13.4.1.2.7 修改时间
[root@oldboyedu ~] # date -s "20191004 11:00:40" 年10月4日11点
Fri Oct 4 11:00:40 CST 2019
[root@oldboyedu ~] # date
Fri Oct 4 11:00:41 CST 2019
[root@oldboyedu ~] # date
Fri Oct 4 11:00:42 CST 2019
13.4.1.2.8 查看日志
[root@oldboyedu ~] # tail -f /var/log/cron 查看日志发现脚本已经触发
Oct 3 10:56:46 oldboyedu crontab[2211]: (root) REPLACE (root)
Oct 3 10:56:46 oldboyedu crontab[2211]: (root) END EDIT (root)
Oct 3 10:57:01 oldboyedu crond[1365]: (root) RELOAD (/var/spool/cron/root)
Oct 4 11:01:24 oldboyedu CROND[2386]: (root) CMD (run-parts /etc/cron.hourly)
Oct 4 11:01:24 oldboyedu run-parts(/etc/cron.hourly)[2386]: starting 0anacron
Oct 4 11:01:24 oldboyedu anacron[2398]: Anacron started on 2019-10-04
Oct 4 11:01:24 oldboyedu run-parts(/etc/cron.hourly)[2400]: finished 0anacron
Oct 4 11:01:24 oldboyedu anacron[2398]: Will run job `cron.daily' in 37 min.
Oct 4 11:01:24 oldboyedu anacron[2398]: Jobs will be executed sequentially
Oct 4 11:00:44 oldboyedu CROND[2492]: (root) CMD (sh /server/scripts/ntpdate_sync.sh)
Oct 4 11:00:44 oldboyedu CROND[2494]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 3 11:00:01 oldboyedu CROND[2520]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 3 11:00:01 oldboyedu CROND[2523]: (root) CMD (sh /server/scripts/ntpdate_sync.sh)
13.4.1.2.9 查看是否执行成功
[root@oldboyedu ~] # date
Fri Oct 4 11:00:42 CST 2019
[root@oldboyedu ~] # date 发现时间已经修改为正确的时间
Thu Oct 3 10:59:55 CST 2019
[root@oldboyedu ~] # ll /tmp/oldboy.txt
-rw-r--r-- 1 root root 60 Oct 3 11:00 /tmp/oldboy.txt
[root@oldboyedu ~] # cat /tmp/oldboy.txt 环境变量也同步成功
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboyedu ~] #
13.4.2.1 定时任务执行错误与正确的结果显示在哪里
13.4.2.1.1 postfix服务关闭的时候(inode会占用更多的)
[root@oldboyedu maildrop] # cd /var/spool/postfix/maildrop/ 定时任务会存在这个文件里面
[root@oldboyedu maildrop] # ll
total 8
-rwxr--r-- 1 root postdrop 608 Oct 3 11:19 1C423B3260
-rwxr--r-- 1 root postdrop 608 Oct 3 11:18 CA426B2D3C
13.4.2.1.2 postfix服务开启的时候(block会占用更多的)
[root@oldboyedu maildrop] # cat /var/spool/mail/root 定时任务会存在这个文件里面
From user@localhost.localdomain Mon Sep 23 22:43:29 2019
Return-Path: user@localhost.localdomain
最合理的做法
13.4.2.1.3 使用黑洞来保存输出内容的信息
[root@oldboyedu ~] # crontab -e
*/5 * * * * sh /server/scripts/ntpdate_sync.sh & > /dev/null 将内容输出到黑洞中
13.4.3.1 错误示范
13.4.3.1.1 编写定时任务
[root@oldboyedu ~] # crontab -e
* * * * * tar zcvf /opt/hosts_$(date +%F).tar.gz /etc/hosts 编写打包定时任务
13.4.3.1.2 查看日志
[root@oldboyedu maildrop] # tail -f /var/log//cron
查看定时任务日志,发现命令打包出错,不识别+号后面的字符
Oct 3 11:26:40 oldboyedu crontab[3053]: (root) REPLACE (root)
Oct 3 11:26:40 oldboyedu crontab[3053]: (root) END EDIT (root)
Oct 3 11:27:01 oldboyedu crond[1365]: (root) RELOAD (/var/spool/cron/root)
Oct 3 11:27:01 oldboyedu CROND[3122]: (root) CMD (tar zcvf /opt/hosts_$(date +)
13.4.3.2 正确示范
13.4.3.2.1 使用转义符号进行编写
[root@oldboyedu ~] # crontab -e
#30 */1 * * * cp /etc/hosts /etc/hosts_lyx.bak
#*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
#*/5 * * * * sh /server/scripts/ntpdate_sync.sh & > /dev/null
* * * * * tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts 添加转义符号
13.4.3.2.2 查看日志
[root@oldboyedu maildrop] # tail -f /var/log//cron 日志已经备份成功
Oct 3 11:32:09 oldboyedu crontab[3189]: (root) REPLACE (root)
Oct 3 11:32:09 oldboyedu crontab[3189]: (root) END EDIT (root)
Oct 3 11:33:01 oldboyedu crond[1365]: (root) RELOAD (/var/spool/cron/root)
Oct 3 11:33:01 oldboyedu CROND[3201]: (root) CMD (tar zcvf /opt/hosts_$(date +%F).tar.gz /etc/hosts)
13.4.3.2.3 查看备份是否真的成功
[root@oldboyedu ~] # ll /opt/
total 4
drwxr-xr-x. 2 root root 6 Sep 6 16:53 1.txt
-rw-r--r--. 1 root root 0 Sep 7 10:33 aa.txt
-rw-r--r-- 1 root root 170 Oct 3 11:33 hosts_2019-10-03.tar.gz 备份成功
drwxr-xr-x 2 root root 6 Oct 31 2018 rh
[root@oldboyedu ~] #
13.4.3.2.4 .使用脚本进行编写
[root@oldboyedu ~] # cat /server/scripts/tar_sync.sh
#!/bin/bash
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts
[root@oldboyedu ~] #
13.4.3.2.5 编写定时任务
[root@oldboyedu ~] # crontab -e 定时任务编写
* * * * * sh /server/scripts/tar_sync.sh & >/dev/null
13.4.3.2.6 查看日志
Oct 3 11:40:27 oldboyedu crontab[3410]: (root) REPLACE (root)
Oct 3 11:40:27 oldboyedu crontab[3410]: (root) END EDIT (root)
Oct 3 11:41:01 oldboyedu crond[1365]: (root) RELOAD (/var/spool/cron/root)
Oct 3 11:41:01 oldboyedu CROND[3444]: (root) CMD (sh /server/scripts/tar_sync.sh & >/dev/null)
日志中查看脚本执行成功
13.4.3.2.7 查看真实是否打包成功
[root@oldboyedu maildrop] # ll /opt/
total 4
drwxr-xr-x. 2 root root 6 Sep 6 16:53 1.txt
-rw-r--r--. 1 root root 0 Sep 7 10:33 aa.txt
-rw-r--r-- 1 root root 170 Oct 3 11:41 hosts_2019-10-03.tar.gz 已经打包成功
drwxr-xr-x 2 root root 6 Oct 31 2018 rh
[root@oldboyedu maildrop] #
13.4.5.1 错误书写方式
4/2 * * * * cp /etc/hosts /etc/hosts_$(date +\%F-\%T) 4/2这种写法是无法保存成功的,格式书写错误
"/tmp/crontab.JQwB8M" 14L, 352C written
crontab: installing new crontab
"/tmp/crontab.JQwB8M":13: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit?
13.4.5.2 编写定时任务正确的表示方法
4-59/2 * * * * cp /etc/hosts /etc/hosts_$(date +\%F-\%T)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章