SFS3備份還原筆記

自己是lunux的新手,學校的主機都是我到學校後才開始學著架設的,因為是初學者,所以那時選擇使用有桌面模式的B2D系統,這篇是我在B2D上架設SFS3的備份及還原的小筆記。

---------------------------------

備份

在home中建立一個backupsfs的資料夾,在root建一個自動備份的backupsfs3.sh檔

(寫好的backupsfs3.sh在這裡下載,下載回去要記得改黃色部份。)

rm –rf /home/backupsfs/*.*

#!/bin/sh
cd /var/www/
tar zcvf /home/backupsfs/`/bin/date +%Y%m%d`_sfs3_html.tar.gz sfs3
/usr/bin/mysqldump -u root -prootpassword sfs3 > /home/backupsfs/`date +%Y%m%d`_sfs3.sql

host="XXX.XXX.XXX.XXX" //遠端FTP網址
user="username"
//遠端FTP使用者名稱

password="password"  //遠端FTP使用者密碼

cd /home/backupsfs

/usr/bin/ncftpput -u $user -p $password $host / *.sql

/usr/bin/ncftpput -u $user -p $password $host / *.gz

要備份就執行 ./backupsfs3.sh,就可以在本機及遠端同時取得一個備份。因為我這個備份檔在執行時,會先將本機的所有備份檔刪掉,再製作新的備份檔,並使用FTP傳到遠端去,所以每次執行後,在本機就只剩最新的備份檔,但遠端會有每一次的備份檔的存檔。

(在備份檔中,要輸入的密碼如有(等特殊字元,可以在前後加上’’來輸入)

---------------------------------

本機還原資料庫

使用phpmyadmin刪除sfs3資料庫,再重新建立sfs3資料庫,再於終端機中輸入以下指令:

#mysql -u root -p sfs3 < sfs3.sql  // <之後是之前備份的sql檔名

上面指令輸入後,需再輸入root的密碼,之後就會把備份的sql檔灌回sfs3資料庫中,這樣就完成了。

---------------------------------

異機還原

使用phpmyadmin刪除sfs3資料庫,再重新建立sfs3資料庫,再於sfs3資料庫中點選SQL連結,再輸入以下指令來設定使用者權限:

grant all on sfs3.* to sfs3man@localhost identified by 'mysql管理密碼';

再於終端機中輸入以下指令:

#mysql -u root -p sfs3 < sfs3.sql  // <之後是之前備份的sql檔名

上面指令輸入後,需再輸入root的密碼,之後就會把備份的sql檔灌回sfs3資料庫中。

用B2D的桌面,將/var/lib/mysql/中的sfs3資料夾改名,如改為sfs3a

 

再將sfs3備份檔複製到 /var/www 中,將該檔案解壓:

#tar zxvf 20091210_sfs3_html_tar.gz //20091210_sfs3_html_tar.gz是備份檔名

將這個解壓後的sfs3資料夾中,之前只是改名的install.php改回來,並把sfs3/incude/config.php權限改為777,再使用IE重新安裝sfs3。

再用B2D的桌面,將新裝的/var/lib/mysql中的sfs3資料夾改名為sfs3b,並將之前改的sfs3a改回sfs3就完成異機還原。

 

後記:

剛又想到異機還原還有一個方法說不定可行,可以不用下指令來設定使用者權限,目前的想法是,先將sfs3備份檔解壓後,先重裝一次sfs3,再用phpmyadmin來將sfs3資料庫砍掉,再重建同名的sfs3資料庫,再在終端機中使用 #mysql -u root -p sfs3 < sfs3.sql  這個指令來將資料庫灌回去,這樣應該也可以吧!有空再試試。

PS:我剛試了很多次,如果自己打指令,在SQL中設定使用者權限一直會出錯,可能是我空格或什麼的有問題,因為完全沒概念,所以就希望可以不用下指令就可以完成的方法來做。

這個網誌中的熱門文章

Ubuntu筆記-我在Ubuntu上常用的軟體介紹

行動學習DIY-106上康軒國語生字筆順練習學習單分享

教育噗浪客年會9心得兼flyer課程補充介紹