Linux FTP备份脚本:保留本地与远程7天内zip备份

需积分: 9 4 下载量 198 浏览量 更新于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服务器上保留一定期限历史数据的用户非常有用。它简化了备份过程,避免了手动操作的繁琐,并且通过保留多版本备份,提供了灾难恢复的额外保障。同时,由于作者对网络上泛滥的不可用或错误的备份脚本表示不满,这个脚本提供了一个实际可用的例子,可供学习和借鉴。