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

 1、创建保存备份文件的目录:/home/wwwrootbak
   cd /home
   mkdir wwwrootbak
2、创建备份脚本文件:/home/wwwrootbak/wwwrootbak.sh
   cd /home
   cd  wwwrootbak
   touch wwwrootbak.sh
   vim wwwrootbak.sh
   输入以下内容:

  1. #!/bin/sh
  2.    BK_DR=/home/wwwrootbak    #备份文件存放路径
  3.    DB_DR=/home/wwwroot
  4.    DAYS=7                    #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
  5.    LINUX_USER=root           #系统用户名
  6.    date=` date +%Y%m%d `
  7.    tar zcvf $BK_DR/wwwroot$date.tar.gz $DB_DR
  8.    chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者
  9.    find $BK_DR -name "wwwroot*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的备份文件(注意:{} \;中间有空格)
  10.    deldate=` date -d -7day +%Y%m%d `   #删除ftp服务器空间7天前的备份
  11.    ftp -n<   open 192.168.1.1  21 #打开ftp服务器。21为ftp端口
  12.    user admin 123456  #用户名、密码
  13.    binary  #设置二进制传输
  14.    cd wwwrootbak  #进入ftp目录
  15.    lcd /home/wwwrootbak  #列出本地目录
  16.    prompt
  17.    mput wwwroot$date.tar.gz   wwwroot$date.tar.gz   #上传目录中的文件
  18.    mdelete wwwroot$deldate.tar.gz  wwwroot$deldate.tar.gz  #删除ftp空间7天前的备份
  19.    close
  20.    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目录下面可以看到类似wwwroot20240326tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩:tar -zxvf  wwwroot20240326.tar.gz

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值