4.28 定时任务进阶

定时任务

定时任务流程

  1. 命令行测试(测试命令是否ok)
  2. 书写脚本并测试脚本
  3. 写入定时任务 /分钟 检查
  4. 检查日志 /var/log/cron 检查是否执行 然后看结果是否执行成功
  5. 写入定时任务 根据要求修改时间 ,并定向到空 &>/dev/null 或追加到文件

定时任务出现故障

  1. 如果没有定向到空 系统会给你发送邮件
    2.如果邮件服务关闭 系统会把邮件封存 存放在 /var/spool/postfix/mailfdrop 下 会出现大量的小文件 占用较多的inode

怎样避免定时任务中的坑

**书写定时任务一定要添加说明 用来区分不同的定时任务
**书写定时任务一定要使用脚本 而且运行脚本一定要用sh
**一定要用绝对路径
** 定向到空 或文件

/sbin下的命令 定时任务不识别 需要添加
. /etc/profile 重置环境变量 或使用命令的绝对路径

[root@lalala ~]# vim oldboy
#!/bin/bash
. /etc/profile
ip a s  eth0   >>/root/oldboy.txt
                                       ```


###脚本
sh  执行脚本内容

[root@lalala ~]# vim 999
ls -l
[root@lalala ~]# sh 999
total 61876
-rw-r--r-- 1 root oldboy 4368 Apr 26 10:44
-rwxr--r-- 1 root root 350 Apr 24 08:52 1234
-rw-r--r-- 1 root root 41 Apr 25 19:19 123.txt
-rw-r--r-- 1 root root 7 Apr 30 15:56 999
-rw-r--r-- 1 root root 58112885 Mar 9 2018 access.log


sh  -x  查看脚本执行过程

[root@lalala ~]# sh -x oldboy

  • . /etc/profile
    ++ '[' -x /usr/bin/id ']'
    ++ '[' -z 0 ']'
    +++ /usr/bin/id -un
    ++ USER=root
    ++ LOGNAME=root
    ++ MAIL=/var/spool/mail/root
    ++ '[' 0 = 0 ']'
    ++ pathmunge /usr/sbin
    ++ case ":{PATH}:" in
    +++ /usr/bin/hostname
    ++ HOSTNAME=lalala
    ++ HISTSIZE=1000
    ++ '[' ignoredups = ignorespace ']'
    ++ export HISTCONTROL=ignoredups
    ++ HISTCONTROL=ignoredups
    ++ export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
加号越多代表越优先执行

你可能感兴趣的:(4.28 定时任务进阶)