Linux 主機備份Basic

WWW+MySQL


這份文件說的不多,主要是講WWW跟MySQL的備份及還原。
所以是Basic版 :D

Table Of Contents

1.備份前我要會什麼、知道什麼

2.該怎麼作

3.該怎麼還原

4.網路資源



1.備份前 我要會什麼、知道什麼

返回索引

1.1 要備份的檔案有?

要備份的檔案有哪些?一般而言要視系統所執行的服務及備份的完整度而定
依學校的主機所執行的服務有:

1.1.1 WWW

WWW 的服務主要是提供網頁的服務,因此備份網頁是這個部份的重點,而且備份網頁又可以分成主網站與一般使用者網頁的備份
一 般網頁的放置路徑為:/var/www/html;CGI程式的路徑為: /var/www/cgi-bin
因此,備份主網站一般就是備份/var/www這個資料夾,是最快的方式。

一 般使用者網頁,都是位於/home/使用者名稱/public_html裡底下,所 以一般備份都是將整個/home打包起來


1.1.2 MySQL資料庫

MySQL 資料庫的檔案一般是位於/var/lib/mysql 底下
如果ls -al來看的話,就大概是像這樣子,在底下目錄的名稱就是在MySQL中資料庫的名稱,如果想要針對某一個資料庫作備份的話
就是直接對它作打包的動作。

drwx--x--x   2 mysql mysql     4096 11月  3 03:43 mysql/
drwx------   2 mysql mysql     4096  1月 14 18:06 plog/
drwx------   2 mysql mysql     4096 11月 25  2003 school/
drwx------   2 mysql mysql     4096 12月  2 21:41 schoolboard/

不過一般的備份還是以所有的資料庫來備份居多,因此要對整個的資料庫備份,就是對/var/lib/mysql這個目錄作打包的動作。


1.2 怎麼打包?包完了要怎麼開?

打包,打包.....一直出現,怎麼樣才能打好包回家睡覺呢?

打 包起手式:  tar  zcvf   備份目的檔案名稱.tar.gz   備份的來源資料夾

再舉一些例子

tar  zcvf   myfile.tar.gz   myfiles/

tar  zcvf   yourfile-2005-01-02.tar.gz    mydocment/

tar  zcvf   testfile.tar.gz         /home/test/files 

tar  zcvf  /tmp/ok.tar.gz   /home/test


打完了包,要解開包裝囉

解 包裝起手式:tar xvzf   檔案名稱

例子:tar  xvzf   myfile.tar.gz

出來的位置就是在你的所在的目錄底下囉。

如果你原來是將/var/www/html這個目錄打包起來,那如果你在/root下解開的話就會變成
/root/var/www/html這樣子的路徑。

上面的例子,應該滿清楚了,如果不夠的話可以再去問google大神 :p

ref.
壓 縮指令:http://linux.vbird.org/linux_basic/0240tarcompress.php
目 錄與路徑:http://linux.vbird.org/linux_basic/0220filemanager.php

1.3 怎麼傳到別部主機?要怎麼從別部主機傳回來?

怎麼傳到別部主機?  用磁片? 用光碟? 用FTP就好了

FTP起手第一式 :   ncftp  -u  username  hostname  (登入FTP)
實例:ncftp -u   jacky   163.23.100.188

第二式: mput   filename (上傳檔案)
實例:mput  file.tar.gz

第三式:bye  (離開)


什麼???就樣子,沒錯。


這樣子就可以傳到別部主機了呀

那要怎麼從別部主機傳回來呀?

FTP起手第一式 :   ncftp  -u  username  hostname  (登入FTP)
實例:ncftp -u   jacky   163.23.100.188

第二式: ls (看看遠端主機上有那些目錄、檔案)

第三式:mget file.tar.gz

第四式:bye  (離開)


2.該怎麼 作

返回 索引

2.1 開始打包各個檔案

接下來我們不多說廢話,直接衝了
假設我用root登入了後,我所在的目錄就是/root這個目錄底下,請先了解目前的所在地,如果忘了,可以用pwd (print work dir)來看

2.1.1 打包www的主網站目錄

service  httpd stop   (先將WWW服務關閉)
tar  zcvf   www-bak-2005-01-26.tar.gz   /var/www/
service http start    (打包完後再啟動)

2.1.2 打包MySQL資料庫

service  mysql stop (先將MySQL服務關閉)
tar zcvf   sql-bak-2005-01-26.tar.gz  /var/lib/mysql
service mysql restart (打包完後再啟動)

2.2 上傳至別台/遠方主機

ncftp -u  username  163.23.100.199
mput  www-bak-2005-01-26.tar.gz
mput  sql-bak-2005-01-26.tar.gz
bye

上面就是最簡單的備份方式了。


3.該怎麼 還原

返回 索引

3.1 將欲還原的服務先關閉

service httpd stop
service mysql stop

3.2 抓下遠端主機上的檔案

ncftp -u username 163.23.100.199
mget  www-bak-2005-01-26.tar.gz
mget  sql-bak-2005-01-26.tar.gz
exit

3.3 解開打包的檔案

配合打包時的路徑都是用完整路徑
cd  /   (所以要先cd  /  移至根目錄)
tar xvzf  www-bak-2005-01-26.tar.gz
tar xzvf  sql-bak-2005-01-26.tar.gz
 

3.4 重新啟動服務

service httpd start
service mysql start


4.網路資 源

返回 索引

鳥哥的私房菜:http://linux.vbird.org
台南網管技術文件集:http://linux.tnc.edu.tw/techdoc/