Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> linuxweb目錄文件全備腳本

linuxweb目錄文件全備腳本

日期:2017/1/20 17:40:08      編輯:Linux系統常見問題解答
#!/bin/bash
#文件全備腳本
#刪除7天以前的文件
#調用方法
#yxy
#www.sql8.net
#[email protected]
#2014-08-20
#請主意所有路徑都為全整目錄
#sh filebak.sh 要備份的目標目錄 備份文件存放路徑 保留文件的天數
#sh filebak.sh /home/wd/wd/wd /home/wd/wd/bakup 7
#sh filebak.sh /home/dd/dd/dd /home/dd/dd/bakup 7

#path
path=$1
backupPath=$2
n=$3

#參數不全
if [ "$path" == "" ] || [ "$backupPath" == "" ] || [ "$n" == "" ]; then
echo "Insufficient arguments"
exit 1
fi

#目標目錄不存,退出
if [ ! -d "$path" ]; then
echo "Directory does not exist"
exit 1
fi

#如果存放備份文件的目錄不存,新建
if [ ! -d "$backupPath" ]; then
mkdir "$backupPath"
fi

#Time information
#時間
time=`date +"%Y-%m-%d-%H-%M-%S"`
day=`date +"%d"`
month=`date +"%Y-%m"`
weekday=`date +"%u"`

#路徑最後一個目錄
folderName=`basename $path`
fileName=$folderName$day$time.tar.gz

#如果文件存在,刪除
if [ -e "$fileName" ]; then
rm -rf $fileName
fi

cd $path
cd ..
tar -zcf $fileName $folderName

#移動備份文件到備份目錄
mv $fileName $backupPath

#刪除N天前的數據
find $backupPath -name "$folderName*.gz" -type f -mtime +$n -exec rm {} \;

********************crontab設置**********************************************
根據需要設置相關備份規則,此處略則部分規則

#每天1點備份
0 1 * * * cd /opt/backup/database && ./1.sh

#每周一1點備份
0 1 * * 1 cd /opt/backup/database && ./1.sh

#每2小時備份
0 */2 * * * cd /opt/backup/database && ./1.sh

#每2天備份
0 0 */2 * * cd /opt/backup/database && ./1.sh

#每個月5號1點20分備份
20 1 5 * * cd /opt/backup/database && ./1.sh

更多contrab規則請看
http://www.sql8.net/a/course/caozuoxitong/liunx/2014/0815/30328.html

mysql全備腳本升級版,支持多台主機,多個數據庫http://www.sql8.net/a/course/caozuoxitong/liunx/2014/0820/30545.html
mysql全備腳本,此腳本可以備份多個數據庫:http://www.sql8.net/a/course/shujuku/Mysql/2014/0815/30340.html
Copyright © Windows教程網 All Rights Reserved