linux -- crontab
简介
linux里面执行定时任务的工具为crontab
使用
查看定时任务
crontab -l
编辑定时任务(修改完成后保存退出即可生效)
crontab -e
语法
*/1 * * * * /home/work/restart_update_process.sh >> /home/work/log/check_update_process.out
- 五个个星号分别对应 分、时、日、月、周 取值范围分别是0-59/0-23/1-31/1-12/0-7 关于周的时候呢取0或者7都是表示星期天 且周与日月不可共存
- *表示任意时间 比如案例中日月周都为*即是表示任意天
- ,(逗号) 比如 0 1,2 * * * command 表示1点和2点
- -(减号) 比如 0 1-8 * * * command 表示1点到8点的没个小时0分都执行
- /n 比如 */5 * * * * command 表示每隔5分钟执行一次
备注
- 如果要执行的语句比较复杂可以考虑写到一个shell脚本中,定时执行脚本即可
- 被执行的脚本或者程序需要有执行权限
常用案例
0 1 * * * 每天1点
20 */24 * * * 每天0点20分
0 */3 * * * 从0点开始计算,每3个小时
数据安全
冻结危险命令
- -r
- -i
备份
恢复
通过备份恢复
通过日志文件恢复(没有备份的情况下)
- 日志文件位置
- 过滤命令
1
2
3<!--将日志文件中的命令输出到cmd_tmp文件中-->
cat /Users/luoyang/Downloads/crontab.log | grep -i "whoami" > grep "CMD" | awk -F '(' '{print $3}' | awk -F ')' '{print $1}' | sort -u > cmd_tmp - 从上个命令输出的文件中一一拿出命令到日志文件中进行grep搜索,结果中有时间信息应该是可以清晰的看出执行的频率的
