shell script互動式備份資料庫、網頁檔

互動式備份資料庫、網頁檔

#!/bin/bash
#設定檔
WDIR=/home/dkben/www
BDIR=/home/dkben/BACKUP_WWW
BDIRDM=$BDIR/`date '+%Y-%m'`
#sudo的密碼
SPWD=root的密碼
#mysql root 的密碼
SQLPWD=資料庫root的密碼
NOWDATE=`date '+%Y-%m-%d-%H:%M:%S'`

echo "==========網頁備份shell script=========="
echo -n "請輸入要備份的資料庫名稱(空白表示無):"
read DBNAME
echo "資料庫會備份在網頁目錄底下"
echo -n "請輸入要備份的網頁目錄名稱:"
read DIR
DDIR=$WDIR/$DIR

if [ $DBNAME ]
then
  if [ -d $DDIR ]
  then
    mysqldump -u root --password="$SQLPWD" $DBNAME > $DDIR/$DBNAME.sql
  else
    echo "找不到這個目錄備份資料庫!"
  fi
fi

if [ -d $DDIR ]
then
  if [ -d $BDIRDM ]
  then
    echo ""
  else
    mkdir $BDIRDM
  fi
  echo "$SPWD" | sudo -S tar -cvzf $BDIRDM/$NOWDATE-$DIR.tar.gz $DDIR
else
  echo "失敗!找不到這個www目錄!"
fi

結果自動依照現在日期産生年月份的子資料夾,並將檔案放在裡面:

 

由於系統管理員root的密碼和資料庫root的密碼已經寫在script中,所以檔案用一般身份建立即可,但是要給執行的權限。

chmod -R a+x filename ( 擁有人 )

chmod -R u+x filename ( 所有人 )

 

注意! 只能用在本機開發機器上,以免script外洩,root密碼被外人取得!!!