Linux FTP备份脚本:保留本地与远程7天内zip备份
需积分: 9 54 浏览量
更新于2024-09-07
1
收藏 1KB TXT 举报
该资源提供了一个使用Linux shell脚本来实现定期备份本地数据到FTP服务器的解决方案。脚本使用zip命令进行文件压缩,因为zip能够处理中文目录和文件名,而tar可能无法正确处理中文字符。脚本会在本地保留最新3份备份,在FTP服务器上保留最新7份备份。
在Linux环境中,为了实现这个备份策略,首先需要确保系统安装了FTP客户端(如`ftp`)和zip/unzip工具。可以通过以下命令安装:
```bash
yum install -y ftp unZip zip
```
接下来,创建一个名为`bak.sh`的脚本文件,用于定义备份的各个参数和执行备份操作。在这个示例中,将数据库目录设置为`/home/test`,备份存储位置设为`/home/backup`,FTP服务器的IP地址是`192.168.1.101`,用户名为`ftpuser`,密码为`12345`,FTP服务器上的备份目录为`backup`。
脚本的核心部分包括以下几个步骤:
1. 使用当前日期和时间生成备份文件名,如`bak_20220820_1530.zip`。
2. 使用`zip`命令将数据库目录`/home/test`的内容压缩成一个zip文件,存放在`/home/backup`目录下。
3. 使用`ls`、`awk`和`xargs`命令删除本地超过3个的旧备份文件。
4. 登录FTP服务器,将新备份文件上传,并按照时间顺序重命名FTP服务器上的旧备份文件,以保持最多7份备份。
5. 脚本最后设置了执行权限,并通过crontab配置定时任务,使其每天的00:00执行一次,实现自动化备份。
在执行脚本前,别忘了赋予它执行权限:
```bash
chmod u+x /home/bak.sh
```
然后,通过编辑crontab配置,添加定时任务:
```bash
crontab -e
```
在编辑器中添加一行:
```bash
0 0 * * * /home/bak.sh
```
保存并退出编辑器,这会安排脚本在每天的凌晨0点执行。
这个备份脚本对于那些需要定期备份并且希望在远程FTP服务器上保留一定期限历史数据的用户非常有用。它简化了备份过程,避免了手动操作的繁琐,并且通过保留多版本备份,提供了灾难恢复的额外保障。同时,由于作者对网络上泛滥的不可用或错误的备份脚本表示不满,这个脚本提供了一个实际可用的例子,可供学习和借鉴。
2017-07-14 上传
2011-04-13 上传
2020-09-15 上传
2018-10-22 上传
2021-01-10 上传
2012-03-10 上传
2014-09-23 上传
2013-02-01 上传
zglnje
- 粉丝: 0
- 资源: 11
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫