crontab 每天凌晨12点定时器_crontab命令定时备份执行脚本

本文详细介绍了如何使用CronTab设置周期性任务及Tar命令进行文件备份的方法。包括CronTab的时间格式设定、常见任务示例以及Tar命令的具体参数说明。通过实践示例,帮助读者更好地理解和掌握这两个常用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、tar 命令备份

参数:-c: 建立压缩档案、-z:有gzip属性的、-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

有三个文件

24408051eecc367acaf381fde23e08c5.png

我们将当前目录下的文件全部打包

11cdeb1c9bbfff9de9e6617236cf38d1.png

利用date生成特定文件名称

tar -czf log-`date +%Y%m%d`.tar.gz ./

e485096f4b81d916a6f211a3ebbb9ac4.png

二、crontab

我们先查看下命令

4925f05fbd1f8682e66fec8cf70e2415.png

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行。

91237e45933e27240197bd82873fe0d6.png

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

或者这个表好理解一点

d1f8737e4d42365f590765d9f6883458.png

在时间表示中,还有一些特殊符号需要学习

e29fc99c4bf8c70af66ff16473a76c23.png

一些帮助理解的例子

8e0ed770cbc12587e8aeb8c810cc97fd.png

做一个简单的练习,在当前目录下,创建一个文件

f0688072966211100d069f5992ddbba0.png
524c80d5d4fdb81b06bd1ef677b64c84.png

让系统每隔 2 分钟就向 test1 文件中写入一行"xlglvc",验证一下系统定时任务是否会执行

首先进入编辑模式

e09546c050acf57b36d36f694cf6ad8d.png

编辑命令

*/2 * * * * /bin/echo "xlglvc" >> /data/tarTest/test1

52b1043d7889d83f971e62e822920eee.png

我们查看这个文件信息

3def39fadc7d07840c33d733164a3a48.png

我们可以使用下面的命令查询当前用户定时任务或删除当前用户定时任务

查询当前用户定时任务

68679711776b9f822c07b4f8cfaf02a4.png

删除当前用户定时任务

ac7faec5ccef78168e8a9ad3bd17d2c9.png

我们把上面的打包压缩命令做一下更改,将打包压缩命令放到脚本中

ce0f6223df4f33e469efda43ed4b2e61.png

我们将时间范围缩小到秒

tar -czf log-`date +%Y%m%d_%H%M%S`.tar.gz ./

7da71ac09cd98cdebd3254bbebd0a834.png

执行脚本

c89af0a9de7a5f31f39a53e8082f9c6f.png

系统每分钟执行一次这个脚本

9923370fa58e4b02c44723aab345607b.png

我们查看下任务

ea9a3ff8ec368dbf59a9b9c1f4292b4f.png

我们查看这个内容

5aaf568634c37d71dd43af9e57a2577c.png

更改下文件权限,我们再查看任务

f676eccbc8f8c56a1cd9c090afcf0c35.png

可以考虑下面三个练习

1、让系统在每周一的凌晨3点01分重启一次

2、在每月1日、10日、15 日的凌晨 00 点 30 分都定时执行日志备份脚本

3、结合前面邮件的发送命令,定时发送打包的压缩文件

网上练习参考

##每月每天凌晨3点30分和中午12点20分执行test.sh脚本

30 3,12 * * * /home/test.sh

##每月每天每隔6小时的每30分钟执行test.sh脚本

30 */6 * * * /home/test.sh

##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本

30 8-18/2 * * * /etc/init.d/network restart

##每月每天晚上21点30分执行test.sh脚本

30 21 * * * /etc/init.d/network restart

##每月1号、10号、22号凌晨4点45分执行test.sh脚本

45 4 1,10,22 * * /etc/init.d/network restart

##8月份周一、周日凌晨1点10分执行test.sh脚本

10 1 * 8 6,0 /etc/init.d/network restart

##每月每天每小时整点执行test.sh脚本

00 */1 * * * /etc/init.d/network restart

在书写 crontab 定时任务时,需要注意以下几个事项:

1、6 个选项都不能为空,必须填写。如果不确定,则使用"*"代表任意时间。

2、crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。

3、在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。

4、在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值