这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战
简介
我们可能会对linux进行简单的监控或者定期执行一些操作,因此会用到linux自带的定时任务功能.
语法
man
1 | python复制代码Usage: |
1. 查看定时任务
1)查看当前用户的
1 | 复制代码crontab -l |
如果该服务器被挖矿,他很可能也同时执行了定时任务,用此命令可以看到挖矿的脚本
2)查看指定用户的
1 | arduino复制代码crontab -l -u zzz # zzz为系统存在的一个用户 |
查看指定用户(zzz)正在执行的任务 ,只需要添加-u参数即可,其他命令也同理
3)查看系统所有用户的
1 | bash复制代码cat /etc/passwd |cut -f 1 -d : |xargs -I {} crontab -l -u {} |
2. 删除当前的定时任务
1 | 复制代码crontab -r |
3.新增或编辑定时任务
1 | 复制代码crontab -e |
进入编辑模式, 按照指定任务命令格式编辑命令, 格式参照下面的任务命令格式
4.查看支持的环境变量
1 | ruby复制代码cat /etc/crontab |
任务命令格式
任务命令分为两个部分: 第一部分是cron表达是, 后面跟着sh命令
例子
1 | bash复制代码* * * * * /root/date.sh # 每分钟执行一次date.sh脚本文件 |
cron表达式的语法规则
1 | scss复制代码* * * * * |
sh命令语法规则
单行的可执行的sh命令, 可以是运行shell脚本的命令,也可以是直接的sh命令
其他
1) 任务是否执行查询
在/var/log/
目录下有cron
开头的文件, 里面包含了crontab的执行记录
1 | javascript复制代码Feb 19 10:19:01 zdc CROND[8314]: (root) CMD (/root/date.sh) |
推荐将任务写成脚本, 在其中添加执行成功失败之类的输出逻辑,自定义输出到指定文件中 如
1 | bash复制代码...业务逻辑 |
2) 任务是否出错判断
当任务执行过程中报错后,会给当前用户发送邮件,默认情况下在/var/spool/mail
中的对应用户文件下
1 | bash复制代码您在 /var/spool/mail/root 中有新邮件 |
1 | ini复制代码... |
crontab发送邮件
发送到外部邮箱,以qq邮箱为例
在cat /etc/crontab
将MAILTO=root
修改为你需要的外部邮箱账号
且在crontab -e
的第一行添加MAILTO=外部邮箱账号
并且配合linux发送邮件文章使用
结束语
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
如果您喜欢我的文章,可以[关注]+[点赞]+[评论],您的三连是我前进的动力,期待与您共同成长~
1 | arduino复制代码 作者:ZOUZDC |
本文转载自: 掘金