乐趣区

关于程序员:云计算学习14days-定时任务crontab

crond 应用状况

1. 零碎级别的定时工作

  • 临时文件清理
  • 零碎信息采集
  • 日志文件切割
    2. 用户级别的定时工作
  • 定时向互联网同步工夫
  • 定时备份零碎配置文件
  • 定时备份数据库的数据

    应用定时工作(服务)筹备

    几大根底服务:网络(network),定时工作(crond),系统日志(rsyslog),近程连贯(sshd)

    定时工作小指标

  • 每 5min 同步一次零碎工夫
  • 每天晚上 12 点打包备份 /etc 目录到 /backup
  • 打包备份 /etc/usr 上面以.conf 结尾的文件 /backup
  • 打包备份 /etc/usr 上面以.conf 结尾的文件 /backup/ip 地址
  • 打包备份 /etc/usr 上面以.conf 结尾的文件 /backup/ip 地址并删除 7 天之前的备份
  • 打包备份 /etc/usr 上面以.conf 结尾的文件 /backup/ip 地址并删除 7 天之前的备份,保留周一的备份

    打算工作工夫治理

    1.Crontab 配置文件记录了工夫周期的含意
    /etc/crontab 零碎定义的定时工作
    /etc/cron.deny 能够禁止用户定义定时工作

符号 含意 举例
*
/ 每隔
, 表白没有太大法则的 00 8,9,10 * bb 八九十点去 bb
范畴 00 6-12 * bb 6 到 12 点去 bb
% 回车 用 /% 解决
每隔两个小时执行一次 df -h
00 */2 * * * 不能有空格 */2

分时日月周

每天中午 12 点吃吃饭
00 00 * * * 吃饭

应用 crontab 用户定义 cron 定时工作

-e   #编辑定时工作,如果是 root 用户,则是 vim /var/spool/cron/root
-l   #查看定时工作
-r   #删除定时工作,删除以后用户所有定时工作
-u   #指定其余用户
tail  -f   /vat/log/cron  #查看日志
[root@sb ~]# crontab -l
#pll bbbb
* * * * * echo bbb >>/tmp/bb.txt
每分钟 输入 bbb 到 bb.txt
* * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null  
如果不是 /bin 下的命令,加上命令的绝对路径
每天凌晨三点这一次备份,打包备份 /etc/
tar zcf /tmp/etc.tar.gz  /etc/ 
crontab -e 
* 3 * * * tar zcf /tmp/etc.tar.gz   /etc/  &>/dev/null

定时工作未解之谜

man 5 crontab
同时书写日期和周几,仅仅一个合乎就执行定时工作

故障案例,注意事项

1. 给定时工作正文
2. 将须要定期执行工作写入 shell 脚本中,防止间接应用命令无奈执行状况 tar date
3. 结尾肯定要有 &>/dev/null 或者追加重定向 >>/tmp/data.log
4. 有些命令无奈执行胜利 echo “123” >> /tmp/test.log &>/dev/null

定时工作没有定向到空或追加到文件,故障案例

邮件服务开启,会收到大量的提醒

you have new mail in /var/spool/mail/root

最初导致邮件文件越来越大
敞开服务 systemctl stop postfix.service
会在 /var/spool/postfix/maildrop 上面生成大量小文件

定时工作命令不在 /bin /usr/bin,故障案例

解决办法

  • 应用绝对路径
  • 在脚本结尾重新配置下,与命令门路相干的环境变量
    source /etc/profile

    crond 如何备份

    1. 通过查找 /var/log/cron 中执行的记录,去推算工作执行的工夫
    2. 定时的备份 /var/spool/cron/{username}

    如何回绝某个用户应用

    1. 应用 root 将须要回绝的用户退出 /etc/cron.deny
    2.

    打算工作如何调试

  • 减少频率
  • 调整零碎工夫
  • 把脚本执行后果写入指定日志文件,察看日志内容是否失常
  • 通过查看 /var/log/cron 日志

退出移动版