一句话介绍crond服务:后台运行,自动执行设定的任务。
crond服务是默认安装,默认开机启动的
配置:
- 系统级别: /etc/crontab #root 用户可以直接编辑此文件来编辑计划任务
- 用户级别:/var/spool/cron/用户名
crontab命令编写计划任务(推荐):
- crontab -e # 默认为当前用户创建计划任务
- 将任务写入一个 task.sh 的脚本文件
- * * * * * * /usr/bin/bash tash.sh # 设定时间 + bash命令绝对路径 + 写入计划任务的脚本文件task.sh
- 常用时间格式(从右往左看):
- 0 7 * * * # 每天7点
- 0 */1 * * * # 每小时
- 0 9 1,15 * * # 每月1号和15号的9点
- @reboot # 启动时
- @daily # 每天,相当于 0 0 * * *
- /usr/bin/bash # 命令解释器,将逐行读取脚本内的命令,并执行
- task.sh # 任务脚本,将命令写入脚本,不容易发生cron执行错误,且方便管理
- 常用时间格式(从右往左看):
- crontab -e -u 用户名 # 为指定用户创建计划任务
- crontab -l # 查看任务计划
- crontab -r # 删除当前任务计划
- 动态查看cron执行日志:tail -f /var/log/cron
实例:每天下午6点,自动打包备份nginx的日志
- 新建任务脚本并命名为bak_accesslog.sh
[root@bogon bak]# vim bak_accesslog.sh
tar czf /bak/$(date '+%Y-%m-%d_%T').tar.gz /var/long/nginx/* # $() 取命令结果 - [root@bogon bak]# crontab -e
0 18 * * * /usr/bin/bash /bak/bak_accesslog.sh
- 查看任务计划
- 查看执行日志
- 查看是否生成以时间命名的备份文件