Shell【脚本 01】实现定时备份文件、压缩、删除超时文件操作(showDoc文件备份脚本举例)

Shell脚本备份数据的博文不少,这个应该算是比较简单的,没有复杂逻辑,分享一下。

本文介绍了一个简单的Shell脚本实现showDoc文件备份功能。脚本包含两个版本:纯净版(直接修改路径即可使用)和带解析版(逐行注释说明)。主要功能包括:复制指定文件到临时目录、打包压缩为带日期后缀的tar.gz文件、清理临时文件以及自动删除30天前的旧备份。文章还补充了设置定时任务的步骤,包括赋予脚本执行权限、配置crontab表达式(每天00:00执行)以及重启cron服务。该方案简单实用,适合基础备份需求。

1.备份脚本

Shell脚本的每行命令一定要在测试环境进行测试,否则会有意想不到的惊吓😨,以下是showDocBackUp.sh的内容。 这里是纯净版本,修改地址就可以使用:

bash 复制代码
#!/bin/bash
cp /showdoc_data/html/Sqlite/showdoc.db.php  /home/showDocFile/tmp/showdoc.db.php
cp -r /showdoc_data/html/Public/Uploads/* /home/showDocFile/tmp/
tar -zcPvf /home/showDocFile/BackUpFile-$(date +%Y%m%d).tar.gz /home/showDocFile/tmp/*
rm -rf /home/showDocFile/tmp/*
find /home/showDocFile -mtime +30 -name "BackUpFile*.tar.gz" -exec rm -rf {} \;

这里是带解析的版本:

bash 复制代码
#!/bin/bash
# 这行是copy文件,当然也可以对复制的文件进行重命名操作,多个文件进行备份可以写多行。
cp /showdoc_data/html/Sqlite/showdoc.db.php  /home/showDocFile/tmp/showdoc.db.php
# 这行是copy文件夹文件。
cp -r /showdoc_data/html/Public/Uploads/* /home/showDocFile/tmp/
# 压缩文件夹下的所有文件并添加日期后缀。
tar -zcPvf /home/showDocFile/BackUpFile-$(date +%Y%m%d).tar.gz /home/showDocFile/tmp/*
# 压缩后删除临时文件。
rm -rf /home/showDocFile/tmp/*
# 查找30天前的文件,并删除。
find /home/showDocFile -mtime +30 -name "BackUpFile*.tar.gz" -exec rm -rf {} \;

2.定时任务

给可执行文件赋予权限的操作不要忘记。

bash 复制代码
# 给showDocBackUp.sh文件赋予可执行权限 
chmod -R 777 showDocBackUp.sh

Linux的 cron 表达式跟Java的 cron 表达式不同,这里要注意。

bash 复制代码
# m h dom mon dow	command
# 分 时 日 月 周    要执行的命令
bash 复制代码
# 编辑定时任务列表
crontab -e
	# 添加以下文本(每天00:00执行showDocBackUp.sh脚本)
	00 00 * * * /home/showDocFile/shell/showDocBackUp.sh
# 重启 cron 服务
sudo service crond restart

3.小小的总结

Shell脚本也算是一种编程,实际上能实现的功能也是蛮多的。

相关推荐
天若有情6731 天前
【java EE】IDEA 中创建或迁移 Spring 或 Java EE 项目的核心步骤和注意事项
后端·spring·java-ee·intellij-idea
大鱼七成饱1 天前
💥 从崩溃到稳定:我踩过的 Rust Tokio 线程池坑(含代码示例)
后端
喵个咪1 天前
开箱即用的GO后台管理系统 Kratos Admin - 站内信
后端·微服务·go
韩立学长1 天前
基于Springboot的旧物公益捐赠管理系统3726v22v(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
Dyan_csdn1 天前
springboot系统设计选题3
java·spring boot·后端
Yeats_Liao1 天前
时序数据库系列(二):InfluxDB安装配置从零搭建
数据库·后端·时序数据库
Yeats_Liao1 天前
时序数据库系列(一):InfluxDB入门指南核心概念详解
数据库·后端·时序数据库·db
蓝-萧1 天前
springboot系列--自动配置原理
java·后端
bobogift1 天前
【玩转全栈】----Django基本配置和介绍
java·后端
倚栏听风雨1 天前
Async-Profiler 框架简介
后端