當有一次放學生資料的硬碟壞掉後,學生辛辛苦苦做的電腦作業毀於一旦時(還好我前天才把資料抓下來準備改作業)
如果不是運氣好,我大概已經被學生們海K一頓了
所以我就在想要如何備份資料
聽說rsync很方便
就上網找資料,找到了這一篇以及這一期的Linux guide有介紹
自己就實做了一次
下面是我做的筆記
---------------------------------------------------------------
電腦分成兩台(server:192.168.0.100 Client:192.168.0.200)
**放備份資料的主機(Server) ip:192.168.0.100**
1.安裝rsync
- 代碼: 選擇全部
apt-get install rsync
2.修改/etc/default/rsync
- 代碼: 選擇全部
將 RSYNC_ENABLE=false
改成RSYNC_ENABLE=true
3.rsync client 主機的設定
- 代碼: 選擇全部
#vi /etc/rsyncd.conf
[Home]
#允許使用rsync的ip
hosts allow = 192.168.0.200
#將其他的都檔掉
hosts deny = *
#要存放備份的地方
path = /back
#隨便你填
auth users = home_back
uid = root
gid = root
#rsync的帳號密碼的位置
secrets file = /etc/rsyncd.secrets
#是否唯讀--不要
read only = no
4.設定密碼 rsyncd.secrets
- 代碼: 選擇全部
#vi /etc/rsyncd.secrets
帳號:密碼
例如
rostin:ILoveRostin
接著修改權限和擁有者
#chown root:root /etc/rsyncd.secrets
基本上我用root建立的/etc/rsyncd.secrets所以這一步是多餘的
#chmod 600 /etc/rsyncd.secrets
5.啟動rsync
- 代碼: 選擇全部
#/etc/init.d/rsync start
可以連到自己的電腦看看有沒有成功
#telnet localhost 873
如果出現
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
@RSYNCD: 29
代表已經成功了
**要備份的主機(Client)ip:192.168.0.200
1.安裝rsync
- 代碼: 選擇全部
#apt-get install rsync
2.設定密碼
- 代碼: 選擇全部
#vi /etc/rsyncd.passwd
這裡要填上你剛剛在server端所建立的密碼ILoveRostin
更改權限與擁有者
chmod 600 /etc/rsyncd.passwd
基本上我用root建立的/etc/rsyncd.secrets所以這一步是多餘的
chown root:root /etc/rsyncd.passwd
3.開始備份
- 代碼: 選擇全部
rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /home/ rostin@192.168.0.100::Home/home
-a:保留權限,除了Hard Link
-r:遞迴地複製目錄中的所有目錄
-H:保留 Hard Link
-z:資料備份前先壓縮
--progress:顯示進度
--delete:如果要備份的主機上刪除了某個檔案,備份的主機也刪除某個檔案
--password-file:密碼檔的位置
這一行rostin@92.168.0.100::Home/home[/color]的意思是
帳號@server的ip::在server端/etc/rsyncd.conf中的名字/建立一個home來放資料
這樣就大功告成了
4.最後當然要讓他自動化
- 代碼: 選擇全部
#vi /etc/crontab
加入
0 5 * * * root /usr/bin/rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /home/ rostin@192.168.0.100::Home/home
這樣每天早上五點就會自動備份了
**資料的還原
1.到要被還原資料的電腦(Client 192.168.0.200那一台)
2.執行rsync還原
- 代碼: 選擇全部
#rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd rostin@192.168.0.100::Home/home /home
這樣就可以把/back/home裡的資料還原到你的/home裡面了