shell脚本删除一天前的备份文件实例

作者:袖梨 2022-06-30

今天公司要求我把服务器上的备份文件拷到内部服务器上,并且只要最新的,好吧,运维人员的理想目标是什么,就是能够让电脑做的事,决不自己来做.
  系统:centos 5.9
  环境:备份文件在/root/bak下,当然我是虚拟机上进行的测试

1.备份文件环境图

点击查看原图

2.shell脚本内容:

 代码如下 复制代码


 #!/bin/bash 

 location="/root/bak/"

 find $location -type f -mtime +1|xargs rm -f


运行脚本后的图

点击查看原图
好了,可以看到脚本把今天以外的备份都删除了,如果你不想删除的话,那就改成下面的脚本:

 代码如下 复制代码


#!/bin/bash
location="/root/bak/"
newfile="/root/newfile"
file=$(find $location -type f -mtime -1)
cp $file $newfile

好了,就这样吧,上面我们需要天天运行一下,后来看到朋友写了一个自动删除前一天备份文件实例

脚本内容backuplislog.sh:

  

 代码如下 复制代码
  #!/bin/bash 
    FTPHOST="1.1.1.7"
    USERNAME="lislog"
    PASSWORD="lislog"
    
    #取前一天年月日 
    y=`date --date='1 days ago' "+%Y"`  
    m=`date --date='1 days ago' "+%m"`  
    d=`date --date='1 days ago' "+%d"`    
    
    #取当天年月日 
    yt=`date "+%Y"` 
    mt=`date "+%m"` 
    dt=`date "+%d"` 
    
    #以当天日期为压缩文件名 
    y1=`date "+%Y"` 
    m1=`date "+%m"` 
    d1=`date "+%d"`   
    
    #文件名信息 
    SRCFILE="lis42.log.$y-$m-$d*   lis42.log.$yt-$mt-$dt*   lis42.log"
    DESFILE="lis42_$y1-$m1-$d1.zip"
    
    #需要备份文件的目录 
    FILEPATH="/home/lislog"
    
    # FTP Server备份目录 
    # BACKUPDIR="lislog"
    
    #压缩处理 
    cd  $FILEPATH 
    zip $DESFILE  $SRCFILE 
    
    #登入FTP Server并传送档案 
    ftp -v -n $FTPHOST << END
    user $USERNAME $PASSWORD
    binary
    put  $DESFILE 
    bye 
    END
    
    #删除临时压缩文件 
    cd  $FILEPATH 
    rm -f $DESFILE 
    
    #end

最后扔到cron里就ok了,然后用的时候去拿就可以了

 代码如下 复制代码

# crontab -l
30 6 * * * /home/itadmin/backuplislog.sh

结果查看:

 代码如下 复制代码

#ll  /home/lislog/

-rw-r--r-- 1 itadmin dba  240100295 06-08 06:31 lis42_2012-06-08.zip

经测试追踪发现,已经稳定执行。

相关文章

精彩推荐