zoukankan      html  css  js  c++  java
  • linux下自动备份脚本并上传到ftp服务器

    #!/bin/bash

    #设置日志文件,前提建好了/backup/log目录

    LogFile=/backup/log/`date +"%Y-%m"`.log

    #备份源目录

    SourceDir=/cvs

    #备份目标

    BakDir=/backup

    #保存20天过期自动删除

    RetainDay=20

    #备份的内容可以写进project.lst,如cvs目录下有a,b,c三个目录,project.lst填写多少就备份多少,下面是备份的

    #具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里

    ProjectLst=/backup/project.lst

    ##################################################

    DATE=`date +"%Y-%m-%d"`

    echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile
    echo "--------------------------------------------------" >>$LogFile

    cd $BakDir

    PROJECTLIST=`cat $ProjectLst`

    for Project in $PROJECTLIST

    do

     ProjectData=$SourceDir/$Project

     DestDir=$BakDir/$Project

     PackFile=$DATE.$Project.tgz

     if [ -f $BakDir/$PackFile ]

     then

      echo "backup file have exist !" >>$LogFile

     else

      cp -RHpf $ProjectData $DestDir >/dev/null

      tar -zcvf $PackFile $Project >/dev/null

      echo "backup $Project done into $PackFile" >>$LogFile

      rm -rf $Project

     fi

    done

    echo "--------------------------------------------------" >>$LogFile

    echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

    echo " " >> $LogFile

    ##################################################

    #下面的内容就是把刚才备份的内容传到服务器上,前提是你有一个可以访问到底FTP服务器

    #put backup to ftp server

    HOST=192.168.110.111

    FTP_USERNAME=ftpuser

    FTP_PASSWORD=123456

    cd  $BakDir

    echo "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile

    echo "--------------------------------------------------" >>$LogFile

    /usr/bin/ftp -in <<EOF

    open $HOST

    user $FTP_USERNAME $FTP_PASSWORD

    put $DATE.$Project.tgz

    bye

    EOF

    echo "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

    #最后上传完毕后再查看本地备份大于20天的自动删除,这样就可以实现本地异地双备份

    find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} ; >/dev/null

    exit 0

    #最后我们还可用crontab做个周期性计划,比如每周一次全备份

    #59 23 * *  6  /home/backup.sh    

  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/surplus/p/14683565.html
Copyright © 2011-2022 走看看