Crontab 学习笔记
前言:Crontab的确是Linux自动化运维的一个利器,自从我知道这个东西七年过去了,嗯,我现在还在用(也许我是火星用户,偷偷说一声Py大法好)。现在顺便整理一下笔记。
安装
sudo yum install crontabs
配置
sudo crontab -e // Editing task of certain user, same as : vi /etc/crontab
sudo crontab -u // Appointing a user
sudo crontab -l // Listing task plan of certain user
sudo crontab -r // Removing all plan of certain user
常规用法
[min] [hour] [day] [month] [week] [command to be executed]
- 其中,Week指的是星期几,区间为0-6,0为周日。
- 单独星号
*
为不设置,星号配合数字代表范围内的数字 - 斜杠
/
代表“每” - 逗号
,
分隔几个离散的周期 - 破折号
-
连接的两个数字代表一个区间 - 举个栗子:
10,15,20 9-16 */1 * * sh /root/insane.sh
代表 每个月一号的9点到16点的第10分钟,第15分钟,第20分钟用sh命令执行/root/insane.sh文件
几个常用例子
- 每五分钟执行
*/5 * * * *
- 每小时执行
0 * * * *
- 每天执行
0 0 * * *
- 每周执行
0 0 * * 0
- 每月执行
0 0 1 * *
- 每年执行
0 0 1 1 *
判断是否启动成功
判断Crontab是否正常启动,除了在执行最后添加一个创建日志文本的操作,还可以查看Crontab自带的日志文件:
# tail -10 /var/log/cron
除此之外,还可以使用Systemctl查看
# systemctl status crond
读取环境变量
crontab 有一个问题, 就是它总是不会默认从用户 profile 文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到 crontab 中试图让它定期执行时就是会出错。因此,只能在脚本文件的开头,强制要求导入环境变量,可保万无一失。
#!/bin/sh
. /etc/profile
. ~/.bash_profile
评论
发表评论