08_计划任务习题记录
08.计划任务课后习题解释
1. 背景说明
在Linux系统中,cron服务用于管理周期性执行的任务,称为cron作业。crontab命令用于编辑cron作业,其格式为:
* * * * * command_to_execute
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 6) (周日=0)
| | | +------- 月份 (1 - 12)
| | +-------- 日期 (1 - 31)
| +--------- 小时 (0 - 23)
+----------- 分钟 (0 - 59)
题目1
在Linux系统中备份脚本backup.sh需要在每周1-5的每天下午1点和晚上8点执行,下列哪个cron命令可以完成()
答案和解释
正确答案:d. 0 13,20 * * 1,2,3,4,5 backup.sh
a. 0 13,20 * 1,2,3,4,5 * backup.sh
b. 0 13,20 1,5 * * backup.sh
c. * 13,20 * * 1,2,3,4,5 backuo.sh
d. 0 13,20 * * 1,2,3,4,5 backup.sh
逐个解释选项:
- 选项a:每天的13点和20点,在每月的1、2、3、4、5日执行,无论星期几
- 选项b:每天的13点和20点,在每月的1日和5日执行,无论星期几
- 选项c:每分钟执行,时间限定在13点和20点,星期1-5
- 选项d:每天的13点和20点,星期1-5(即周一到周五)
使用场景
适用于需要在工作日的特定时间自动执行备份任务的场景,如数据库备份、文件归档等。
2. 创建定时任务执行脚本
新建/soft/scripts/httpd.sh文件,并让/soft/scripts/httpd.sh脚本在每天的00:10分执行
# 解决方案
1. 编写脚本/soft/scripts/httpd.sh
2. 使用crontab设置定时任务
# 执行命令
1. 编写脚本
vi /soft/scripts/httpd.sh
2. 设置定时任务
crontab -e
# 添加以下内容
10 0 * * * /soft/scripts/httpd.sh
# 保存退出
使用场景
适用于需要在特定时间启动或检查HTTP服务的状态,如每天凌晨检查服务是否正常运行。
3. 每周一打包备份目录
新建/backup目录,每周一下午5:50将/backup目录下的所有文件打包成 backup.tar.gz
# 解决方案
1. 创建/backup目录
mkdir -p /backup
2. 编写打包任务
crontab -e
# 添加以下内容
50 17 * * 1 tar -zcvf /backup/backup_$(date +\%F).tar.gz /backup/*
# 保存退出
使用场景
适用于每周定期备份重要文件目录,确保数据安全。
4. 转移超过7天的日志文件
书写一个定时任务,每天0点0分把/var/log/nginx下大于7天文件转移到/backup/2018_xx_xx的目录中
# 解决方案
1. 创建转移任务
crontab -e
# 添加以下内容
0 0 * * * mkdir -p /backup/$(date +\%Y_\%m_\%d) && find /var/log/nginx -type f -mtime +7 -exec mv {} /backup/$(date +\%Y_\%m_\%d) \;
# 保存退出
使用场景
适用于定期清理旧日志文件,保持日志目录的整洁。
5. 每隔7分钟执行脚本
系统脚本/soft/scripts/which.sh,如何定时每隔7分钟执行一次?
# 解决方案
1. 编写定时任务
crontab -e
# 添加以下内容
*/7 * * * * /soft/scripts/which.sh
# 保存退出
使用场景
适用于需要频繁执行某些检查或监控任务的场景。
6. 恢复被删除的crontab文件
如何不小心删除了/var/spool/cron/root文件,该如何恢复。
# 解决方案
1. 尝试以下恢复方法
- 如果系统有备份,从备份恢复
- 如果没有备份,可以尝试以下命令重新创建
crontab -r # 清除现有任务(如果存在)
crontab -e # 重新编辑定时任务
# 注意事项
- 以后定期备份crontab文件
- 可以使用以下命令查看当前用户的定时任务
crontab -l
使用场景
适用于管理定时任务时意外删除crontab文件的情况。

浙公网安备 33010602011771号