简介

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搜索,结果中有时间信息应该是可以清晰的看出执行的频率的