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

1、需要备份的目录:

/home/admin/xiaoshiblog

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

chown admin:admin /home/admin/xiaoshiblogbak

#admin是你的FTP用户组,根据实际情况而定
3、创建备份脚本文件:

/home/admin/xiaoshiblogbak/wwwrootbak.sh
vi wwwrootbak.sh
输入以下内容:

#!/bin/sh 
  BK_DR=home/admin/xiaoshiblogbak
  #备份文件存放路径 
  DB_DR=home/admin/xiaoshiblog
  #你需要备份的目录
  DAYS=7 
  #DAYS=7代表删除7天前的备份,即只保留最近7天的备份 
  LINUX_USER=root 
  #系统用户名 
  date=` date +%Y%m%d ` 
  #以日期命名的变量,记着有单引号
  tar zcvf wwwroot$date.tar.gz $DB_DR 
  #打包需要备份的目录,并命名
  chown -R $LINUX_USER:$LINUX_USER $BK_DR 
  #更改备份存放目录所有文件的的所有者为root
  find $BK_DR -name "wwwroot*" -type f -mtime +$DAYS -exec rm {} \;
  #删除7天前的备份文件(注意:{} \;中间有空格) 
  deldate=` date -d -7day +%Y%m%d `
  #删除ftp服务器空间7天前的备份 
  ftp -n< open 10.102.51.111 21<<END
  #打开ftp服务器。21为ftp端口 
  user xiaoshi xiaoshi123
  #FTP的账号、密码
  binary #设置二进制传输 
  cd xiaoshiblogbak
  #进入远程ftp根目录的xiaoshibak
  lcd /home/admin/xiaoshiblogbak
  #列出本地目录
  prompt 
  mput wwwroot$date.tar.gz 
  #上传目录中的文件 
  mdelete wwwroot$deldate.tar.gz 
  #删除ftp空间7天前的备份 
  close 
  bye !
  

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

chmod +x /home/admin/xiaoshiblogbak/wwwroot.sh

4、修改/etc/crontab

vi /etc/crontab
在下面添加

5 2 * * * root /home/admin/xiaoshiblogbak/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/admin/xiaoshiblogbak/目录下面可以看到类似wwwroot20120913.tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩:tar -zxvf wwwroot20120913.tar.gz

转载于:https://www.cnblogs.com/xiaoshi1991/archive/2012/09/18/2690647.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值