1,安装并检查crontab服务
检查crontab是否安装:
crontab -l
检查crond服务是否启动
service crond status
2,安装cron
yum install vixie-cron
yum install crontabs
- 登录到root用户
- 在root下输入:crontab -e
- 直接进入编辑页面,直接保存退出后,一个新的crontab就生成了
- 输入 service crond status,提示 crond (pid 5503) is running..
3,使用crontab 每分钟都打印当前时间到日志文件中
crontab -e 编辑当前用户的crontab
在编辑器中输入
*/1 * * * * date>>/data/app/sites/www/logs/sh.txt
保存退出后输入
crontab -l
查看定时信息
基础知识普及 :crontab的基本组成
- 系统服务crond每分钟都会从配置文件刷新定时任务
- 配置文件,以文件的方式设置定时任务
- 配置工具crontab,用户调整定时任务
crontab工具的使用
- useradd crontester 添加新用户
- crontab -e -u crontester 编辑指定用户的crontab
- crontab -l -u crontester 查看指定用户的crontab
crontab 配置文件
- 全局系统配置文件 /etc/crontab 注意格式
- Root配置文件,只有root用户才能把这些任务载入到计划任务表中
crontab常见错误
- 环境变量
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">命令行双引号中使用%时,未加入反斜线\</span>
- 第三和第五个域之间执行的是“或”操作
- 分钟设置误用
设置环境变量
cd ~
ls -a
vim .bash_profile
添加环境变量 APPDIR=/etc
source .bash_profile
echo APPDIR 就可以看到
注意:在脚本中操作的时候,这些预置环境变量是不会识别的,在书写的时候尽量小心防止错误
四月的第一个星期日早晨1时59分运行a.sh
59 1 1-7 4 * test `date +\%w` eq 0 && /root/a.sh
分钟设置误用,两小时执行一次
0 */2 * * * date
crontab 中最小只能设置到每分钟执行一次脚本,如果想每半分钟执行一次该怎么办?
可以通过shell脚本的sleep命令配合crontab即可完成
每隔半分钟执行一次
*/1 * * * * date>>/logs.txt
*/1 * * * * sleep 30s; date>>/logs.txt