#!/bin/sh ## 本程式用來備份並以NcFTP方式送至遠方主機 ## 二林網管 紀明村 2003-11-15 阿玠&阿亮改版 22006-12-03 ## 請自行修改檔尾的ftp主機及帳號密碼及相關路徑 HEAD="14" ## 要保留檔案多寡 ALL_HTML_SQL="" ## ALL_HTML_SQL="ALL" 時,為備份全部網頁及資料庫,否則只備份學務系統 BB_SVR="" ## 備份主機IP,BB_SVR="" 時,為不做異地備份 BB_USR="webadmin" ## 備份主機帳號 BB_PAS="superuser" ## 備份主機密碼 BB_PATH="baksfs/" ## 登入後的放置目錄, 請在使用者目錄下用mkdir -p baksfs 指令新增 ## ---------------------------------------- HTM_PATH="/var/www/html" ## 本機網頁路徑(sfs上層) SQL_PATH="/var/lib/mysql" ## 本機MYSQL資料庫實體位置 SFS_DB="sfs3" ## 本機sfs資料庫的目錄名稱 SFS_SCR="sfs3" ## 本機sfs的程式的目錄名稱 ZIP_PATH="/home/webadmin/bak" ## 本機壓縮後檔案放到何處 TMP_PATH="/home/webadmin/tmp" ## 暫存目錄 ## ---------------------------------------- #/etc/rc.d/init.d/httpd stop ## 停止apache #/etc/rc.d/init.d/mysqld stop ## 停止資料庫 /etc/rc.d/init.d/iptables stop clear echo "資料備份中,請稍候............" ## ---------------------------------------- if [ "$ALL_HTML_SQL" != "" ]; then SQLA="ALL_DB" ## 壓縮檔案名首碼前部分(全部資料庫) ## HTMLA="ALL_HTML" ## 壓縮檔案名首碼前部分(全部網頁) ## else SQLB="SFS_DB" ## 壓縮檔案名首碼前部分(僅sfs資料庫) ## HTML="SFS_PHP" ## 壓縮檔案名首碼前部分(僅sfs的網頁程式)## fi TTIME=`date "+%Y%m%d_%H%M%S"` if [ "$ALL_HTML_SQL" != "" ]; then ZIP_f1=$ZIP_PATH/${SQLA}_${TTIME}.tgz ZIP_f2=$ZIP_PATH/${HTMLA}_${TTIME}.tgz else ZIP_f3=$ZIP_PATH/${SQLB}_${TTIME}.tgz ZIP_f4=$ZIP_PATH/${HTML}_${TTIME}.tgz fi /bin/sync /bin/sync ## ---------------------------------------- if [ -d $TMP_PATH ]; then echo else mkdir -p $TMP_PATH fi ## ---------------------------------------- if [ -d $ZIP_PATH ]; then echo else mkdir -p $ZIP_PATH fi ## ---------------------------------------- if [ "$ALL_HTML_SQL" != "" ]; then cd $SQL_PATH cd .. /etc/rc.d/init.d/mysqld stop ## 停止,燏鼇w /bin/sync tar zcf $ZIP_f1 mysql /bin/sync cd $ZIP_PATH cd .. tar zcf $ZIP_f2 html else cd $SQL_PATH /etc/rc.d/init.d/mysqld stop ## 停止,燏鼇w /bin/sync tar zcf $ZIP_f3 $SFS_DB /bin/sync cd $HTM_PATH tar zcf $ZIP_f4 $SFS_SCR fi if [ "$BB_SVR" != "" ]; then clear echo "資料上傳中,請稍候........................" if [ "$ALL_HTML_SQL" != "" ]; then /usr/bin/ncftpput -u $BB_USR -p $BB_PAS $BB_SVR $BB_PATH $ZIP_f1 $ZIP_f2 else /usr/bin/ncftpput -u $BB_USR -p $BB_PAS $BB_SVR $BB_PATH $ZIP_f3 $ZIP_f4 fi fi #ls -t $ZIP_PATH |head -$HEAD > /tmp/jls.dir #OPEN_MV=`cat /tmp/jls.dir` #for MV in $OPEN_MV; do # mv $ZIP_PATH/$MV $TMP_PATH #done #rm /tmp/jls.dir cd $ZIP_PATH ls -t |head -$HEAD |xargs -n 1 mv -t $TMP_PATH rm $ZIP_PATH/*.tgz mv $TMP_PATH/*.tgz $ZIP_PATH chown webadmin.apache -Rf $ZIP_PATH /bin/sync /bin/sync ## ---------------------------------------- #/etc/rc.d/init.d/httpd restart ## 啟動apache /etc/rc.d/init.d/mysqld restart ## 啟動資料庫 /bin/firewall.sh clear echo "資料備份完成.................."