Linux中的定时任务(案例:定时备份和清空)


前言

Linux中的定时任务(案例:定时备份和清空)


crontab 命令

  • Linux crontab 是用来定期执行程序的命令, 当安装完成操作系统之后,默认便会启动此任务调度命令。
  • crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

使用语法

  • crontab -e:打开文字编辑器来设定时程表
  • crontab -l:查看时程表
  • crontab -r:删除时程表
  • crontab -u [指定用户] -[附加上面命令]:对指定用户进行操作
  1. 编辑(创建任务):
# 不加 -u 表示编辑当前用户的时程表
$ crontab -e
# 编辑wang这个用户的时程表
$ crontab -u wang -e

图例:
输入 -e 编辑命令
在这里插入图片描述
回车进入 vi 编辑窗口
默认是空,此处编写你的定时任务,规则在下方描述
Linux中的定时任务(案例:定时备份和清空)_第1张图片

  1. 查看(查看时程表
# 不加 -u 表示查看当前用户的时程表
$ crontab -l
# 查看wang这个用户的时程表
$ crontab -u wang -l

图例:
查看当前用户时程表
在这里插入图片描述
查看指定用户时程表
在这里插入图片描述

  1. 删除(删除时程表
# 不加 -u 表示删除当前用户的时程表
$ crontab -r
# 对wang这个用户进行删除操作
$ crontab -u wang -r

图例:
删除当前用户时程表
Linux中的定时任务(案例:定时备份和清空)_第2张图片

删除指定用户时程表
Linux中的定时任务(案例:定时备份和清空)_第3张图片

实例

定时备份用 nohup.out命令 启动jar包的 nohup.out日志文件,并清空源日志文件。

一分钟备份备份一次

编写备份脚本,该脚本会把/usr/wang/soft/test/nohup.out文件复制一份以当前事前开头的备份文件,并清空原来的nohup.out文件内容

#!/bin/bash

# 获取当前日期
date=$(date +%Y%m%d%H%M%S)

# 备份日志文件
cp /usr/wang/soft/test/nohup.out /usr/wang/soft/test/${date}_nohup.out

# 清空日志文件
echo "" > /usr/wang/soft/test/nohup.out

当前路径下的所有文件
Linux中的定时任务(案例:定时备份和清空)_第4张图片
设定时程表,一分钟执行一次该脚本

# 编辑时程表
$ crontab -e
# 在vm中输入如下规则(一分钟执行一次/usr/wang/soft/test目录下的clear_nohup.sh运行我呢见)
* * * * * /usr/wang/soft/test/clear_nohup.sh
# 设定好了保存退出即可

执行流程如下:

Linux中的定时任务(案例:定时备份和清空)_第5张图片

时程表规则

* * * * * /usr/wang/soft/test/clear_nohup.sh

  • *:表示分钟(0-59)
  • *:表示小时(0-23)
  • *:表示日期(1-31)
  • *:表示月份(1-12)
  • *:表示星期几(0-6,0代表星期天)

常用的表达式

表达式 作用
每分钟执行一次 * * * * *
每小时执行一次 0 * * * *
每天执行一次 0 0 * * *
每周执行一次 0 0 * * 0
每月执行一次 0 0 1 * *
每月最后一天执行一次 0 0 L * *
每年定时执行一次 0 0 1 1 *

总结

以上就是今天要讲的内容,本文简单介绍了crontab的使用,并用自己在工作中遇到的需求作为一个案例。

你可能感兴趣的:(linux,运维,服务器)