预计效果
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.savh.cn/thread-1456.htm
转载请注明:Savh.Cn 发表