我们在部署服务时,难免会遇到使用H2数据库,但目前H2数据库很容易损坏,所以定时备份db文件,以便在损坏后恢复数据,以下是以halo博客H2数据库为例:
在Linux系统上,你可以使用cron
(定时任务调度器)和tar
(压缩工具)来定期压缩某个路径下的文件。
1. 创建Shell脚本
创建一个Shell脚本,用于压缩指定路径下的文件,可以使用 tar
命令进行压缩,创建一个新的文本文件,比如 bf.sh
,并添加以下内容:
vim /opt/halo/bf.sh #编辑文件,文件路径请根据自己所需更改。
添加内容(本教程是按照我部署的路径作为参考,实际请替换自己的):
#!/bin/bash
# 进入目标路径
cd /opt/halo/halo/db
# 使用tar压缩文件,是以:年/月/日/_时/分 命名
tar -czvf backup-$(date +\%Y\%m\%d_\%H\%M).tar.gz *
# 移动到备份目录
mv /opt/halo/halo/db/backup* /opt/halo/halo备份
2. 为脚本添加执行权限
在终端中运行以下命令,为脚本添加执行权限:
chmod +x bf.sh
3. 设置定时任务
使用cron
设置定时任务。运行以下命令编辑cron表:
crontab -e
选择编辑器:
我这里选择 /bin/nano
编辑 cron 表:
在打开的编辑器中,将光标移动到文件的末尾;
添加一行,内容为00 12 * * * /bin/bash /opt/halo/bf.sh
如果你选择的是 /bin/nano
,可以按 Ctrl + O
保存,按 Enter
确认,然后按 Ctrl + X
退出;
现在,你已经成功添加了定时任务。你可以使用 crontab -l
来查看你的当前 cron 表,以确保添加成功。
可以自定义多个时间段添加,以下是举例:
每天上午12点
00 12 * * * /bin/bash /opt/halo/bf.sh
每天下午18点
00 18 * * * /bin/bash /opt/halo/bf.sh
每天傍晚21点
00 21 * * * /bin/bash /opt/halo/bf.sh
每天凌晨12点
00 00 * * * /bin/bash /opt/halo/bf.sh
这表示在每天4个时间段分别执行 /opt/halo/bf.sh
脚本。你可以根据需要调整cron表达式。
4. 保存并退出
根据你使用的编辑器,保存并退出。
现在,脚本将在预定的时间执行,压缩指定路径下的文件,并移动到指定位置目录下。
![](https://kf.gzdata.com.cn/files/public/cubeapi/cube/e206eef3ac029afa8492b6f8453b29f0.png)
评论区