Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本教程Linux

印迹发布于:2021-12-17 377

预计效果

1、备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份

2、上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份。

3、FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目录(此目录需要预先在FTP服务器创建好)

实现步骤:

1、安装ftp命令

apt install ftp   #安装ftp

2、创建保存备份文件的目录:/home/osyunweibak

cd /home  #进入目录
mkdir osyunweibak  #创建目录

3、创建备份脚本文件:/home/osyunweibak/osyunweibak.sh

cd /home/osyunweibak
touch osyunweibak.sh  #创建文件
nano osyunweibak.sh  #编辑文件

并添加以下内容

#!/bin/sh
BK_DR=/home/osyunweibak    #备份文件存放路径
DB_DR=/home/osyunwei   #要备份的文件目录
DAYS=7                    #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
LINUX_USER=root           #系统用户名
date=` date +%Y%m%d `  #获取当前时间
tar  zcvf  $BK_DR/osyunwei$date.tar.gz  $DB_DR   #备份
chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者
find $BK_DR -name "osyunwei*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的备份文件(注意:{} \;中间有空格)
deldate=` date -d -7day +%Y%m%d `   #删除ftp服务器空间7天前的备份
ftp -n<<!
open 192.168.1.1  21 #打开ftp服务器,21为ftp端口
user osyunwei 123456  #用户名、密码
binary  #设置二进制传输
cd osyunweibak  #进入ftp目录
lcd /home/osyunweibak  #列出本地目录
prompt
mput osyunwei$date.tar.gz   osyunwei$date.tar.gz   #上传目录中的文件
mdelete osyunwei$deldate.tar.gz  osyunwei$deldate.tar.gz  #删除ftp空间7天前的备份
close
bye !

ctrl+o   #保存配置,ctrl+x   #退出

4、修改文件属性,使其可执行

chmod +x /home/osyunweibak/osyunweibak.sh  #添加文件执行权限

5、修改/etc/crontab

nano /etc/crontab   #编辑文件,在下面添加以下内容
5 2 * * * root /home/osyunweibak/osyunweibak.sh  #表示每天凌晨2点5分执行备份

6、重新启动crond使设置生效

service cron stop  #停止
service cron start #启动
/etc/init.d/cron restart #重启
chkconfig cron on #设为开机启动

#先要安装chkconfig(apt install chkconfig)

在/home/osyunweibak目录下面可以看到类似osyunwei20120701.tar.gz这样的压缩文件

如果需要恢复文件的时候,只需要把这个文件解压即可

解压缩命令

tar -zxvf  osyunwei20120701.tar.gz

至此,Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本完成。



http://www.virplus.com/thread-1456.htm
转载请注明:2021-12-17 于 VirPlus 发表

推荐阅读
最新回复 (0)

    ( 登录 ) 后,可以发表评论!

    返回