星期日, 9月 11, 2005

定期備份

定期備份

主要是利用 tar 以及 find 來做特定目錄的備份。
tar:壓縮目錄成一個檔案
find:刪除特定條件的檔案

範例:
#!/usr/local/bin/bash
# This file will backup
#
# Http & MySQL
#
#=====================================================================
# History
# Make by denniswave 2004/04/19 first time!
#===========================================================================

# 建立備份的路徑!這樣的好處是可以清楚的知道每個檔案放置的地點!
basedir=/home/Ftp/backup
day=`date +%Y-%m-%d`
week=`date +%Y-%U`

# 1. MySQL ( PATH = /usr/local/mysql ) 每天備份
/usr/local/mysql/share/mysql/mysql.server stop
cd /usr/local
tar -zcf $basedir/mysql.$day.tar.gz mysql 2> /dev/null
/usr/local/mysql/share/mysql/mysql.server start

# 2. WWW及設定備份 每星期備份,每天更新
cd /usr/local
tar -zcf $basedir/www."$week".tar.gz www 2> /dev/null
tar -zcf $basedir/usr.local.etc."$week".tar.gz etc 2> /dev/null
cd /
tar -zcf $basedir/etc."$week".tar.gz etc 2> /dev/null
chmod 400 $basedir/*.*

echo "備份完成"

# 3. 刪除過舊的備份

echo "開始刪除舊檔案"
find $basedir/* -ctime +3 -exec rm -f {} \;
echo "舊檔案刪除完畢"

0 Comments:

張貼留言

<< Home