定时任务
crond
atd 运行一次
anacron 非7*24运行的服务器
crond (软件包cronie)
查询是否安装 rpm -qa cronie
[root@VM_0_15_centos log]# rpm -lq cronie /etc/cron.d /etc/cron.d/0hourly /etc/cron.deny /etc/pam.d/crond /etc/sysconfig/crond /usr/bin/crontab /usr/lib/systemd/system/crond.service /usr/sbin/crond /usr/share/doc/cronie-1.4.11 /usr/share/doc/cronie-1.4.11/AUTHORS /usr/share/doc/cronie-1.4.11/COPYING /usr/share/doc/cronie-1.4.11/ChangeLog /usr/share/doc/cronie-1.4.11/INSTALL /usr/share/doc/cronie-1.4.11/README /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/crontab.5.gz /usr/share/man/man8/cron.8.gz /usr/share/man/man8/crond.8.gz /var/spool/cron
系统的 定时任务
-
/etc/cron.hourly /etc/cron.dayly /etc/cron.weekly /etc/cron.monthly 系统会自动运行里面的内容 ,系统中毒的时候 /etc/crontab 系统定时任务的配置文件之一
/etc/cron.deny 定时任务的黑名单,不让哪些用户写/var/log/corn 定时任务的日志
-
普通用户的定时任务
-
crontab -l 查看用户的定时任务 crontab -e 编辑用户的定时列表 实际存放在 /var/spool/cron/root root是用户名root用户的定时任务
-rw------- 1 root root 141 Dec 23 22:17 root
查看定时任务的状态
- 首先看crond有没有运行
- /etc/init.d/crond status
- ps -ef |grep crond
- 开机自启
- chkonfig |grep crond
- 2
- 3
- 4
系统定时任务+logroutate命令,完成对日志的切割 /定时轮询
/var/log/messages /var/log/secure /var/log/cron
定时任务
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 周几(0-6) command
30 08 * * * 每天8:30
* 每
- 从哪来到哪去,间隔为1 00 7-11 * * * 七点到11点每小时运行
, 分割 00 7,8,9,1011 * * * 七点到11点每小时运行
/n 每隔10分钟
在crintab -e 编写的时候, %有特殊意义,默认为换行,要使用\转义
故障案例
定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1 )或追加到文件中
>/dev/null 2>&1 ================= >/dev/null 2>/dev/null
定时任务中 命令或脚本结果 没有定向到空文件中 1、邮件的软件没有开启,-----大量小文件堆积在 /var/spool/postfix/maildrop/ ---------> inode满了 [root@VM_0_15_centos cron]# /var/spool/postfix/maildrop/ 2、邮件软件开启了--------------->定时任务会不断的给root用户发送邮件 # you have new mail in /var/spool/mail/root
[root@VM_0_15_centos cron]# /etc/init.d/postfix status
定时任务脚本的环境变量问题
- 使用相对路径打包
- cd /
- tar zcf /tmp/ser-$(date +%F).tar.gz etc/services
- 用户的定时任务中,默认存放在当前用户的家目录
- 系统的定时任务,存放在根目录下
定时任务可识别的PATH /bin 和/usr/bin
解决方法
- 绝对路径 /sbin/ipconfig
- 在脚本开头重新定义PATH export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin

echo {1..50000000}.txt |xargs touch
df -i
find / -type d -size +1M
rm 删除大量文件会报错

浙公网安备 33010602011771号