rsync 備份

rsync + ssh 可以做簡單又快速的備援,

做法很簡單:

  1. 先 gen key (參考 ssh-keygen)
  2. 查一下另一邊的 Server 是否有啟動 rsync 服務
  3. 如果沒啟動 => /etc/init.d/rsync start (或 /etc/default/rsync 設定開機啟動)
  4. 確認 Server 和 Client 都有 rsync (ssh session會自己執行rsync --server以便兩端算簽章
  5. 指令1 - 遠端 備份回 本端:

    rsync -avl --delete -e ssh server_hostname:/var/lib/mysql/ /backup/

  6. 指令2 - 本端 傳送到 遠端:

    rsync -avl --delete -e ssh /var/lib/mysql server_hostname:/backup/

這樣子就完成囉. 感謝 Mango 大大指導.

若要詳細的可見以下連結:

閱讀全文〈rsync 備份〉

ssh keygen 免輸入密碼

懶得打密碼, 以 key 做認證登錄.

步驟如下:

  • ssh-keygen -t rsa 或 ssh-keygen -d (dsa) => 產生出 id_rsa, id_rsa.pub
  • scp id_rsa.pub server_hostname:~/.ssh/
  • ssh server_hostname
  • cat .ssh/id_rsa.pub >> .ssh/authorized_keys 即可
  • 這樣子就可以 key 認證登入, 不需輸入密碼.

注意: gen 時會問 Enter passphrase (empty for no passphrase): # 此處直接 enter 跳過,下次才不會詢問password

簡單解說一下:

  • id_rsa: private key
  • id_rsa.pub: public key

將 public key(id_rsa.pub) 拷貝到遠端的電腦後, 加到那 user 的 .ssh/authorized_keys 中.

之後連線時, 就會用本機的 private key(id_rsa) 與遠端電腦的 public key(authorized_keys) 做認證, 確認完成就可以直接登入, 不需輸入帳號密碼, 而且也比較安全.

要關閉使用密碼登入, 只允許使用 Key 來做登入, 可修改此檔案的下述兩個參數: vim /etc/ssh/sshd_config

  • PubkeyAuthentication yes
  • PasswordAuthentication no

將 Key cp 並寫入 authorized_keys 的方式, 有下述幾種簡便的方法:

  1. cat .ssh/id_rsa.pub | ssh hostname 'cat >> .ssh/authorized_keys' # 缺點, 機器沒有 .ssh 目錄會有問題
  2. ssh-copy-id -i .ssh/id_rsa.pub hostname # 推薦
  3. ssh-copy-id -i hostname # 預設會用 .ssh/id_rsa.pub 或現在 ssh-agent 載入的 key

相關網頁