Linux文件定期备份与删除脚本实战攻略
本文提供了一套完整的Linux文件定期备份与删除脚本方案,涵盖本地备份、异地备份(利用expect实现自动化密码输入)和过期备份删除三个方面。脚本利用crontab实现定时任务,并对输出和错误信息进行重定向,方便监控。文中详细介绍了脚本的编写过程、使用方法及相关依赖(expect、cron、Linux时间戳),并提供了GitHub脚本地址方便读者下载使用,有效解决数据丢失问题,保障数据安全。 学习本文,您可以轻松掌握Linux系统下的自动化备份和数据管理技术。
目录
一.背景
二.依赖功能介绍
1.expect
2.cron
3.Linux的三个时间atime, mtime, ctime
三.本地备份脚本
四.异地备份脚本
五.定期删除备份
六.GitHub脚本地址
一.背景
1.数据丢失问题时有发生,如果没有备份,情况将变得非常被动,无论是由于病毒还是人为操作导致的程序或数据删除,事后悔恨已无济于事,不如提前做好数据备份,而异地备份则更为安全。
2.数据备份的意义在于,当遭遇网络攻击、入侵、电源故障或操作失误等事故时,能够完整、快速、简便、可靠地恢复原有系统,在一定范围内保障系统正常运行。
二.依赖功能介绍
1.expect
作用:expect工具可用于与其他交互式程序进行脚本化交互。
安装命令:yum install expect
参考文档:Linux之expect操作详解
2.cron
作用:根据配置文件设定的时间执行特定任务。
参考文档:
Linux Crontab 定时任务
cron表达式
3.Linux的三个时间atime, mtime, ctime
作用:定期删除备份时通常根据备份文件的mtime来进行。
参考文档:详解Linux中atime, mtime, ctime的使用场景
三.本地备份脚本
1.本地备份命令测试
<code>mkdir -p /root/backup/`date "+%Y-%m-%d"` tar -zcvPf /root/backup/`date "+%Y-%m-%d"`/test20221009.tar.gz /root/test20221009</code>
2.封装shell脚本:compress_backup.sh
<code>#!/bin/bash source_folder=/root/test20221009 backup_folder=/root/backup/`date "+%Y-%m-%d"` source_folder_name=`echo $source_folder |awk -F "/" '{print $3}'`.tar.gz echo "source_folder:$source_folder" echo "backup_folder: $backup_folder" echo "source_folder_name: $source_folder_name" <h1>新建立文件夹</h1><p>mkdir -p /root/backup/<code>date "+%Y-%m-%d"</code></p><h1>压缩命令</h1><p>tar -zcvPf $backup_folder/$source_folder_name $source_folder echo "$source_folder_name文件备份成功"</p></code>
3.加入crond定时任务并将输出与错误重定向至文件
编辑添加crond定时任务列表
<code>crontab -e</code>
设置每天00:00执行一次备份任务,并将标准输出与标准错误重定向至日志文件
<code>0 0 <em> </em> * sh /root/backup/compress<em>backup.sh 2>&1 > /root/backup/log</em>$(date +\%Y-\%m-\%d)</code>
测试查看任务执行情况:
<code>tail -5 /var/log/cron</code>
查看备份文件与本地日志正确生成
四.异地备份脚本
1.异地备份命令测试:
<code>scp -C -r /root/backup/2022-10-10/ mrswhite@192.168.37.9:/root/back_up_offsite</code>
提示输入密码后进行备份
查看对端文件备份成功
2.封装expect脚本offsite_backup.expect,当提示输入密码时可自动对应输入密码
<code>#!/usr/bin/expect -f<h1>获取当前日期 例如:2022-10-12</h1><p>set date [ clock format [ clock seconds ] -format "%Y-%m-%d" ]</p><h1>传输用户名</h1><p>set username mrswhite</p><h1>对端hostIP地址</h1><p>set host 192.168.37.9</p><h1>密码</h1><p>set password test20221012</p><h1>设置本地传输路径-前缀</h1><p>set source_folder /root/backup</p><h1>设置兑换传输路径</h1><p>set backup_folder /root/back_up_offsite</p><h1>expect默认timeout为30S 超过30s未传输完会停止,设置为 -1 则不限制超时时间</h1><p>set timeout -1</p><h1>压缩 递归 本地绝对路径 用户名 目标IP 目标路径</h1><p>spawn /usr/bin/scp -C -r $source_folder/$date/ $username@$host:$backup_folder</p><p>expect { "<em>yes/no" {send "yes\r";exp_continue} "</em>password:" {send "$password\r"} }</p><p>expect eof</p></code>
运行后查询结果,已实现了无人值守备份的功能
查看异地文件已生成:
3.加入crond定时任务并将输出与错误重定向至文件
<code>crontab -e</code>
设置每天02:00执行一次异地备份任务,(给本地备份充足的时间预留)并将标准输出与标准错误重定向至日志文件
<code>0 1 <em> </em> * expect /root/backup/offsite_backup.expect 2>&1 > /root/backup/offsite<em>log</em>$(date +\%Y-\%m-\%d)</code>
修改系统时间,重启crond服务等待定时任务的执行,并查询日志:
<code>date -s "2022-10-10 00:59:50" service crond restart tail -5 /var/log/cron</code>
检查异地文件备份成功:
五.定期删除备份
1.定期删除命令测试:
<code>find /root/backup/ -mtime +180 | xargs rm -rf {} #删除180天前的文件与文件夹的信息</code>
2.封装shell脚本delete_expire_backupfile.sh,清理的目录与过期时间可配置
<code>#!/bin/bash<h1>待清除目录</h1><p>dir=/root/backup/</p><h1>文件的过期周期</h1><p>day_expireDay=10</p><h1>删除最终为day_expireDay前的备份文件与文件夹信息</h1><p>find $dir -mtime +$day_expireDay | xargs rm -rf {} echo "$dir下的$day_expireDay天前的文件清理成功"</p></code>
查看文件清理效果如下:
3.加入crond定时任务并将输出与错误重定向至文件
<code>crontab -e</code>
设置每天00:00执行一次异地备份任务,并将标准输出与标准错误重定向至日志文件
<code>0 0 <em> </em> * sh /root/backup/delete_expire_backupfile.sh 2>&1 > /root/backup/delete_log__$(date +\%Y-\%m-\%d)</code>
修改系统时间,重启crond服务等待定时任务的执行,并查询日志,文件已清理成功
<code>date -s "2022-10-12 23:59:50" service crond restart tail -5 /var/log/cron</code>
六.GitHub脚本地址
GitHub地址
至此,本文关于在Linux上实现定期本地备份、异地备份及删除备份的脚本介绍就到这里了。如需了解更多相关Linux文件定期备份的内容,请搜索我们之前的文章或继续浏览下面的相关文章,期待大家以后多多支持我们!
本篇关于《Linux文件定期备份与删除脚本实战攻略》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于科技周边的相关知识,请关注golang学习网公众号!

- 上一篇
- Vue.js混合详解与实用技巧

- 下一篇
- Linux指令大全第三篇:进阶技巧揭秘
-
- 科技周边 · 人工智能 | 3分钟前 |
- PerplexityxSheets:手把手教你接入实时网络数据
- 107浏览 收藏
-
- 科技周边 · 人工智能 | 8分钟前 |
- 豆包AI高阶玩法!手把手教你用经典台词做爆款互动测试图
- 239浏览 收藏
-
- 科技周边 · 人工智能 | 15分钟前 | 浙江世宝
- 浙江世宝自研智能转向,轻松掌控智能驾驶&无人驾驶!
- 418浏览 收藏
-
- 科技周边 · 人工智能 | 21分钟前 |
- AI生成证件照?手把手教你黑科技原理
- 128浏览 收藏
-
- 科技周边 · 人工智能 | 21分钟前 |
- 深度测评!七大平台DeepSeek-R1满血版API使用教程
- 403浏览 收藏
-
- 科技周边 · 人工智能 | 24分钟前 | 酷赛科技 精益生产
- 酷赛科技精益生产大表彰,有你认识的吗?
- 454浏览 收藏
-
- 科技周边 · 人工智能 | 26分钟前 |
- AI生成证件照?版权归属大揭秘
- 208浏览 收藏
-
- 科技周边 · 人工智能 | 40分钟前 |
- DeepSeek满血版怎么稳定访问?六大核心技术方案分享
- 287浏览 收藏
-
- 科技周边 · 人工智能 | 56分钟前 |
- 笔尖AI续写功能实测!轻轻松松告别写作困难户
- 333浏览 收藏
-
- 科技周边 · 人工智能 | 58分钟前 |
- GoogleAIStudio大升级,超越Cursor的全新体验!
- 134浏览 收藏
-
- 科技周边 · 人工智能 | 1小时前 | Pika RunwayML
- Pika/RunwayML零基础玩转视频生成,手把手教你用提示词创作!
- 379浏览 收藏
-
- 科技周边 · 人工智能 | 1小时前 |
- DeepSeek+Triop双剑合璧,手残党也能做出超酷3D模型!
- 490浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 45次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 67次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 77次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 72次使用
-
- Suno苏诺中文版
- 探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
- 75次使用
-
- GPT-4王者加冕!读图做题性能炸天,凭自己就能考上斯坦福
- 2023-04-25 501浏览
-
- 单块V100训练模型提速72倍!尤洋团队新成果获AAAI 2023杰出论文奖
- 2023-04-24 501浏览
-
- ChatGPT 真的会接管世界吗?
- 2023-04-13 501浏览
-
- VR的终极形态是「假眼」?Neuralink前联合创始人掏出新产品:科学之眼!
- 2023-04-30 501浏览
-
- 实现实时制造可视性优势有哪些?
- 2023-04-15 501浏览