線上書籍

Home

網管技術

#!/bin/bash
# 變數  tar, pc ,dirsource1 ~ dirsource8    //
# ---------------------------------------------------------------------------------
#         chown root.root backupdwww; chmod 700 backupd)
# 請將這個檔案 以 root 執行
# ---------------------------------------------------------------------------------
# 以前能用
# ---------------------------------------------------------------------------------
# 取得現在時間
# 2010 SFS3 且變數與=之間不能有空格
datetime=`date +%Y%m%d%H%M%S`
datetimesys=`date +%Y%m%d`
# ---------------------------------------------------------------------------------
# 設定主機名稱
pc=www
# ---------------------------------------------------------------------------------
# 請先自建立以下的目錄
# /home/backupd/wwwdownload/www   <== www 是上面 變數 pc=www
# /home/backupd/wwwdownload 是使用者 wwwdownload 的家目錄, 備份後直接以 wwwdownload
# 帳號登入即可直接下載儲存至其它儲存設備

tar=/home/backupd/wwwdownload/$pc
# 建立目錄
mkdir $tar -p
cd $tar
tar1=$tar
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
# 備份程序
# RETVAL=0

run() {
        # Start daemons.
filename=$pc.$name.$datetime.tar.gz

tar -zcvf $filename $dirsource1 $dirsource2 $dirsource3 $dirsource4 $dirsource5 $dirsource6 $dirsource7 $dirsource8

# ls -alF  $tar/$datetime/$filename
# 變更 使用者.群組
chown wwwdownload.wwwdownload $tar/ -R
ls -alF  $tar/$filename

}
# -------------------------------------------------------------------
rundar() {
        # Start daemons.
filename=$pc.$name.$datetime

dar -c $filename  -R $dirsource1 $dirsource2 $dirsource3    -s 400M


# ls -alF  $tar/$datetime/$filename
# 變更 使用者.群組
chown wwwdownload.wwwdownload $tar/ -R
ls -alF  $tar/$filename.*
}
# -------------------------------------------------------------------
# 備份程序結束
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
case "$1" in
  etc)
    # etc
    name=etc
    dirsource1=/etc/

        run
    ;;
  mysql)
    # mysql
    name=mysql
    dirsource1=/var/lib/mysql/
    dirsource2=/etc/mysql/
    # /etc/rc.d/init.d/mysql stop
        run
    # /etc/rc.d/init.d/mysql start
    ;;
  firewall)
    # firewall
    name=firewall
    dirsource1=/etc/rc.local
    dirsource2=/bin/firewall.sh
        run
    ;;
  bind9)
    # named -- /etc/named.*
    name=bind9
    dirsource1=/etc/bind/
    dirsource2=/etc/rndc.*
    dirsource3=/etc/resolv.conf
    dirsource4=/etc/host*    # ¦WºٸѪRʺֶ§ǫŧiÀÉ
        run
       ;;
  apache2)
    # httpd
    name=apache2
      dirsource1=/etc/apache2/
      dirsource1=/etc/php5/
        run
        ;;

  passwd)
    # passwd
    name=passwd
    dirsource1=/etc/passwd*
    dirsource2=/etc/shadow*
    dirsource3=/etc/group*
    dirsource4=/etc/gsha*
    dirsource5=/etc/hosts*
        run
    ;;
  www)
    # www
    # 這個目錄的備份檔案太大了,所以改用 dar 壓縮程式來備份
    name=www_html
    dirsource1=/var/www/html/
        rundar
    # 備份 xoops 的 _data 及 _lib 及其它(這個目錄比較小)
    dirsource1=/var/www/x/
    dirsource2=/var/www/redirect/
    name=www_xr
    run
    ;;
  crond)
    # postfix
    name=crond
    dirsource1=/var/spool/cron/crontabs/
    dirsource2=/etc/cron*
    dirsource3=/home/crond/
        run

    ;;

# 以下是備份組合
  mysqlall)

    # 配合 cron 每三小時備份一次 mysql
    $0 mysql
    mkdir $tar/$datetimesys
    # mv $tar/$pc.* $tar/$datetime/
    mv ./$pc.* ./$datetimesys/
    chown wwwdownload.wwwdownload $tar/ -R
    ;;

  all)

    $0 etc
    $0 mysql
    $0 firewall
     $0 bind9
     $0 apache2
     $0 passwd
    $0 www
    $0 crond


    mkdir $tar/$datetimesys.sys
    # mv $tar/$pc.* $tar/$datetime/
    mv ./$pc.* ./$datetimesys.sys/
    chown wwwdownload.wwwdownload $tar/ -R
    ;;

  *)
        echo "

Usage: /home/crond/backupdwww
{etc|mysql|firewall|bind9|apache2|passwd|www|crond|all}
etc        系統設定
passwd        系統使用者帳號、密碼
bind9        DNS 設定
crond        這個程式的備份
firewall    防火牆(好像沒啥麼特別的)

mysql        資料庫
apache2        web 伺服器設定
www        網頁備份

all        全部備份

適用於彰化縣 2010 SFS Ubuntu 10.04 學籍系統伺服器安裝光碟
"
        exit 1
esac
exit $RETVAL
exit