網管技術
#!/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