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

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

说明:

我这里要把/home/wwwroot目录下面的所有文件备份到/home/wwwrootbak里面,并且保存为wwwroot20111103.tar.gz的压缩文件(20111103是指备份执行时当天的日期),然后只保留最近7天的备份,再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据。

1、创建保存备份文件的目录:/home/wwwrootbak

cd /home

mkdir wwwrootbak

2、创建备份脚本文件:/home/wwwrootbak/wwwrootbak.sh

cd /home

cd wwwrootbak

touch wwwrootbak.sh

vim wwwrootbak.sh

输入以下内容:

#!/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 !

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

chmod +x /home/wwwrootbak/wwwrootbak.sh

4、修改/etc/crontab

vi /etc/crontab

在下面添加

5 2 * * * root /home/wwwrootbak/wwwrootbak.sh

表示每天凌晨2点5分执行备份

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

/etc/rc.d/init.d/crond restart #yum install -y vixie-cron安装计划任务,某些系统上可能没有预装

chkconfig crond on #设为开机启动

service crond start #启动

每天你在/home/wwwrootbak目录下面可以看到类似wwwroot20111103.tar.gz这样的压缩文件

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

解压缩:tar -zxvf wwwroot20111103.tar.gz

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值