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    

  • 相关阅读:
    Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据
    【转载】Python字符串操作之字符串分割与组合
    【转】Python判断字符串是否为字母或者数字
    Appium 在测试android混合应用时,关于webview页面切换的那些事儿
    使用pip install XX 命令时报错
    Appium笔记(二) 丶Appium的安装
    Android SDK的下载与安装
    KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
    最先进的开源游戏引擎KlayGE 4.4发布
    KlayGE 4.4中渲染的改进(四):SSSSS
  • 原文地址:https://www.cnblogs.com/surplus/p/14683565.html
Copyright © 2011-2022 走看看