CentOS Linux自动备份文件到远程FTP服务器并删除指定日期前的备份Shell脚本

#!/bin/sh   

BK_DR=/home/wwwrootbak   

#备份文件存放路径   

DB_DR=/home/wwwroot

#源文件路径   

DAYS=7                   

#DAYS=7代表删除7天前的备份,即只保留最近7天的备份   

LINUX_USER=root          

#系统用户名   

date=` date +%Y%m%d `

#日期   

tar zcvf $BK_DR/wwwroot$date.tar.gz $DB_DR   

chown -R $LINUX_USER:$LINUX_USER $BK_DR 

#更改备份数据库文件的所有者   

find $BK_DR -name "wwwroot*" -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 admin 123456 

#用户名、密码   

binary 

#设置二进制传输   

cd wwwrootbak 

#进入ftp目录   

lcd /home/wwwrootbak 

#列出本地目录   

prompt    mput wwwroot$date.tar.gz   wwwroot$date.tar.gz  

#上传目录中的文件   

mdelete wwwroot$deldate.tar.gz  wwwroot$deldate.tar.gz 

#删除ftp空间7天前的备份    close    bye !

 

 

 

 

实际使用中

#!/bin/sh

data_bak=/root/bak #备份文件存放路径

data_f3d=/root/f3d #原文件路径

date=$(date +%y%m%d) #日期

days=3 #删除文件日期

tar zcvf ${data_bak}"/"fancy3d${date}".tar.gz" "$data_f3d" #备份打包,并以日期命名

find ${data_bak}"/" -name "fancy3d*" -type f -mtime +$days -exec rm -rf {} \; #遍历路径下fancy3d命名的所有文件并删除“days”时间前创建的文件

 

 

 

posted @ 2020-05-14 21:41  {诗酒趁年华}  阅读(893)  评论(0)    收藏  举报