cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
crontab命令用于设置周期性被执行的指令。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。
crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。
关闭系统服务-命令拼接方式(暂时不使用循环方式)
1 | chkconfig |egrep -v "crond|network/syslog|sshd|sysstat" 排除这5个服务 |
1 | chkconfig |egrep -v "crond|network|rsyslog|sshd|sysstat" |awk '{print "chkconfig "$1" on"}'|bash |
crontab分类
1 | 1.系统使用的定时任务,如: ls -ld /etc/cron* [一般中病毒的时候会用到系统的定时任务] |
crond进程检查
1 | 先确认crond服务是否正在运行 |
定时任务日志(cron排错日志)
1 | 定时任务的日志:/var/log/cron |
定时任务详解
1 | 什么时间执行定时任务? |
定时任务中的常用符号
1 | # 井号,表示注释,不会被处理 |
示例:
1 | (1)每隔两分钟把自己的名字输出到/tmp/oldboy.txt |
企业案例1-错误:You have new mail in /var/spool/mail/root
1 | 如果cron定时任务不定向到空(/dev/null)或指定文件,很容易导致硬盘inode空间被占满,从而系统服务不正常。 |
企业案例2-/tmp目录文件清理
1 | inode满了,清除/tmp目录小文件,删除报错: |
企业案例3-crontab 执行java脚本错误
1 | crontab执行java脚本报错:java里面缺少PATH变量,java找不到对应的命令位置。 |
总结
1 | 1. 每条定义的定时任务善于添加注释行,方便日后维护 |
扩展1: vim命令
1 | dG(d+shift+g) 删除当前行的内容,到最后一行一行的内容 |
扩展2: while死循环执行命令
1 | # vim ntpdate.sh |
扩展3: 查看ip 地址
1 | ip address |
正则命令回顾
1 | echo -e "\na\tb\na" -e参数让echo支持转义符; \n 换行 ; \t 表示tab键,约8个字符长度的区域 |
1 | ^$表示空行 |
正则-取IP地址【排除方式】
1 | [root@oldboy202 scripts]# ifconfig eth0 |awk -F '[^0-9.]+' 'NR==2{print $2}' |
取出passwd 第一列【正反方式】
1 | head /etc/passwd >passwd 拷贝passwd文件用于环境测试 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/06/24/老男孩-Day9之crontab精讲/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!