当前位置: 首页 > news >正文

Linux中使用计划任务和tar命令实现文件备份

Linux中使用计划任务和tar命令实现文件备份

1. 创建备份脚本

首先编写一个备份脚本 backup.sh,使用tar命令打包文件:

#!/bin/bash# 定义备份目录和文件名格式
BACKUP_DIR="/path/to/backup/folder"
SOURCE_DIR="/path/to/source/folder"
DATE=$(date +%Y%m%d)
FILENAME="backup_$DATE.tar.gz"# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR# 执行备份
tar -czf $BACKUP_DIR/$FILENAME $SOURCE_DIR# 删除7天前的旧备份
find $BACKUP_DIR -type f -name "backup_*.tar.gz" -mtime +7 -delete

参数说明:

  • -czf:创建gzip压缩的tar文件
  • -mtime +7:查找7天前的文件
  • -delete:删除匹配的文件
2. 设置脚本权限
chmod +x backup.sh

3. 配置计划任务(使用crontab)
  1. 编辑当前用户的crontab:
crontab -e

  1. 添加以下行(示例为每天凌晨2点执行):
0 2 * * * /path/to/backup.sh

cron时间格式说明:

* * * * *
| | | | |
| | | | +---- 星期几 (0-7) 0和7都表示周日
| | | +------ 月份 (1-12)
| | +-------- 日期 (1-31)
| +---------- 小时 (0-23)
+------------ 分钟 (0-59)

4. 验证配置
  • 查看当前计划任务:
crontab -l

  • 测试脚本执行:
./backup.sh

5. 高级选项
  1. 增量备份(使用tar的增量标志):
tar -g /path/to/snapshot.file -czf backup.tar.gz /source

  1. 备份验证(添加校验步骤):
tar -tf $BACKUP_DIR/$FILENAME > /dev/null && echo "备份验证成功"

  1. 邮件通知(添加邮件提醒):
echo "备份完成:$FILENAME" | mail -s "备份报告" user@example.com

注意事项
  1. 确保脚本中的路径存在且具有读写权限
  2. 使用绝对路径避免cron执行错误
  3. 测试备份文件是否可正常解压:
tar -tzf /path/to/backup.tar.gz

  1. 监控磁盘空间,避免备份占满磁盘

此方案通过Linux内置的cron服务实现定时任务,配合tar命令完成高效的文件备份,适合日常自动化运维场景。

http://www.dtcms.com/a/327316.html

相关文章:

  • 【Unity】Spine重新播放动画时会闪烁上次动画的残影
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • SQL 与 NoSQL 的核心区别
  • 部署高可用5节点 k8s 集群(v1.25.0版本)
  • Python中的高阶函数
  • vue+Django农产品推荐与价格预测系统、双推荐+机器学习预测+知识图谱
  • 六、SpringBoot多环境开发
  • 【Unity笔记】视频播放控制器全攻略:支持延迟播放、事件回调与多视频管理的完整实现
  • Linux 系统下 VS Code 降级至 1.85 版本教程:通过历史版本网站解决兼容性问题
  • 二叉树(七)--完全二叉树的节点个数
  • Day13 Vue工程化
  • mysql 简单操作手册
  • 行业分享丨SimSolid 在汽车零部件开发中应用的可行性调研及实践
  • 鸿蒙har包打包与引用,其它主工程entry引用本地har
  • Wireshark专家模式定位网络故障:14种TCP异常深度解剖
  • 西门子S7-200与S7-1200通过PPI以太网模块通讯,赋能汽车制造行业发展
  • 人机交互:连接人类与数字世界的桥梁
  • 【k8s】pvc 配置的两种方式volumeClaimTemplates 和 PersistentVolumeClaim
  • 计算机网络1-8:第一章 概述 习题课
  • UserController类讲解
  • Git 撤回已推送到远程的最近push
  • Linux 服务器,安装mqtt服务
  • AuthController类讲解
  • 思科、华为、华三如何切换三层端口?
  • 前端面试题汇总--Vue2篇
  • 网络安全:如何保障社交媒体账户的安全?
  • 导入文件到iPhone实现
  • Python打卡Day40 训练和测试的规范写法
  • iOS 编译 cpp 代码生成 .a 库备忘
  • 【测试】Bug+设计测试用例