自己是lunux的新手,學校的主機都是我到學校後才開始學著架設的,因為是初學者,所以那時選擇使用有桌面模式的B2D系統,這篇是我在B2D上架設SFS3的備份及還原的小筆記。
---------------------------------
備份
在home中建立一個backupsfs的資料夾,在root建一個自動備份的backupsfs3.sh檔
(寫好的backupsfs3.sh在這裡下載,下載回去要記得改黃色部份。)
rm –rf /home/backupsfs/*.* #!/bin/sh host="XXX.XXX.XXX.XXX" //遠端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中設定使用者權限一直會出錯,可能是我空格或什麼的有問題,因為完全沒概念,所以就希望可以不用下指令就可以完成的方法來做。
沒有留言:
張貼留言