設為首頁

收藏本站

導覽首頁 | 新登場    ◇聯盟溫泉 | 民宿 | 人力銀行 | 女性 |

類型:Linux_commend

rsync + cron 免密碼
這裡我將簡單紀錄,最基礎的異地同步備份方法:

—如何使用 rsync + ssh + crontab 製作 mirror Files。

因為示範的關係,所以採用一般 User 來進行,
實際狀況下,如果採用 root 進行 ssh 遠端同步時,

必須修改:/etc/ssh/sshd_config。

並設定:
PermitRootLogin no
PermitRootLogin forced-commands-only

另外也必須注意,備份檔案的相關權限問題。

########################################
rsync + ssh 基本同步化
########################################

$ sudo apt-get install rsync ssh

$ man rsync
-a, --archive (archive mode)
-v, --verbose (increase verbosity)
-z, --compress (compress file data)
-e, --rsh=COMMAND (specify rsh replacement)
--rsync-path=PATH (specify path to rsync on the remote machine)

透過 ssh 將 do.info 的 ~/backup,備份至本地端 /backup。

$ rsync -avz -e ssh do@do.info:~/backup/ /backup/
do@do.info’s password: ←(輸入密碼)

如果需要 mirror 遠端與本地端的資料,請加上 --delete 選項。

$ rsync -avz -e ssh --delete do@do.info:~/backup/ /backup/
do@do.info’s password: ←(輸入密碼)

以上僅適合一般同步作業,因為 ssh 必須提示輸入密碼才能進行同步化,
如果放在 Crontab 的話,會因為沒有辦法 key in password 而整個 hang 在那。

########################################
產生 ssh 公開金鑰與私密金鑰
########################################

rsync 會利用 ssh 登入到遠端主機,需要帳號與密碼。
若要在 crontab 中不需要輸入密碼就登入,必須製作 public / private keys。

$ ssh-keygen -t dsa -b 1024 -f do.info-key ←(file name 可自訂)
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): ←(不需輸入,直接按 Enter)
Enter same passphrase again: ←(不需輸入,直接按 Enter)
Your identification has been saved in do.info-key.
Your public key has been saved in do.info-key.pub.
The key fingerprint is:
41:29:60:49:40:c3:a0:8f:2f:74:4e:40:64:a5:42:db Denny@PowerBook-G4.local
(公開金鑰與私密金鑰製作完成)
這時候目錄下會產生兩個檔案:

do.info-key
do.info-key.pub ←(必須放置到遠端的主機裡)

必須將 do.info-key.pub 放到遠端 ~/.ssh/authorized_keys 裡。

$ scp do.info-key.pub do@do.info:~/.ssh/
do@do.info’s password: ←(輸入密碼)
do.info-key.pub 100% 614 0.6KB/s 00:00

登入到遠端的主機,把 pub key 加入 authorized_keys 中。

$ ssh do@do.info
do@do.info’s password: ←(輸入密碼)

do@~$ cd .ssh/
do@~/.ssh$ cat do.info-key.pub >> authorized_keys
do@~/.ssh$ chmod 600 authorized_keys
完成之後,離開遠端主機,並且測試一下,是否已經可以不需密碼即 ssh login。

$ ssh -i do.info-key do@do.info ←(使用 -i 指定剛才的私密金鑰)
do@~$ ←(順利完成!不需密碼即可登入。)

########################################
rsync + ssh + No Password 基本同步化。
########################################

接著下來,即可利用 Rsync 透過 SSH 來同步本地與遠端的資料,而不需輸入密碼。
不用密碼的好處是,可以把 rsync 同步備份指令,寫在 Crontab 下自動執行。

透過 ssh 將 do.info 的 ~/backup,備份至本地端 /backup。

$ rsync -avz -e “ssh -i do.info-key” do@do.info:~/backup/ /backup/
←(順利完成!不需密碼,即可將遠端資料備份過來。)
如果需要 mirror 遠端與本地端的資料,請加上 --delete 選項。

$ rsync -avz -e “ssh -i do.info-key” --delete do@do.info:~/backup/ /backup/
←(順利完成!不需密碼,即可將將遠端的資料製作一份 mirror 到本地端。)

########################################
rsync + ssh + No Password + Crontab 基本同步化。
########################################

基本上,如果上面那一個步驟已經順利成功的話,在加上 Crontab 就不會出錯了。
只要將剛才那串指令,加到 crontab 指令中就行啦!


完成後,即可設定 Crontab。

$ crontab -e
*/2 * * * * /Users/Denny/crontab-file

大功告成,每兩分鐘就執行異地同步備份一次。

########################################
後記 (備註):
########################################

以上所有內容,僅是基本的 rsync+ssh+crontab 示範與練習。


主旨:

內容:




104休閒信箱 2.3.0 © 104mm.com 2001 - 2017. 您尚未登錄
Page generated in 0.00769305 seconds with 3 Queries