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 <>$LogFile #最後上傳完畢後再查看本地備份大於20天的自動刪除,這樣就可以實現本地異地雙備份 find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \; >/dev/null exit 0 #最後我們還可用crontab做個週期性計劃,比如每週一次全備份 #59 23 * *  6  /home/backup.sh
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章