rsync+SSHでバックアップ(講義篇)

昨夜、師匠にご教示いただいた内容をまずは覚書。
あとはLAN内でやって覚えるべし!!
大変な労力に感謝と土下座(平身低頭)。

    • 追記10/21

入れた内容が一部(っつーか大事なところが全部)飛んだ!!(大泣)
再追記します、よよよ。

・ローカルのホームディレクトリにテスト用のディレクトリを作成(%はホスト、$はリモートとする)

% mkdir ~/testdir


・作成したディレクトリ内に適当なファイルをcpする(画像でもOK)

% cp obaba.gif testdir/.


・リモート(バックアップ先)にSSH loginする

% ssh obaba@hogehoge.jp
Password:
$


・一応リモートに同一名のディレクトリがないか確認する

$ ls (なし)
$


・ローカルでホームディレクトリにcd、以下のコマンド実行

% rsync -av -e ssh ./testdir (obaba@)*1hogehoge.jp:~/.


・リモートでtestdirディレクトリがあるか確認(もちろん中身もlsしとく)

$ ls testdir/
$ obaba.gif(あった)


・ローカルのtestdir内に適当なテキストファイルを作成し、再度rsyncをかける

% rsync -av -e ssh ./testdir (obaba@)*2hogehoge.jp:~/.
Password:


・リモートで同じようにテキストファイルもバックアップされているか確認

$ ls testdir/
$ obaba.gif obaba.txt

テキストファイルの中身を書き換えて再度rsyncをかける。
→ちゃんと書き換えた後のobaba.txtがリモートで確認できる。


・さらにローカルでobaba.txtをmvしてrsync実行

% mv obaba.txt obaba_baba.txt
% ls obaba.gif obaba_baba.txt(obaba.txtはリネームされてなくなっている)
% cd ~
% rsync -av -e ssh ./testdir (obaba@)*3hogehoge.jp:~/.
Password:
$ ls testdir/
$ obaba.gif obaba.txt obaba_baba.txt 

リモートでは最初にrsyncした際のobaba.gif、obaba.txt、リネームしたobaba_baba.txtが確認できる。


・最後にローカルでtestdirごと削除して、リモートから書き戻す

% rm -rf ./testdir
% ls ~
% (testdir/ は存在しない)
% rsync -av -e ssh (obaba@)*4hogehoge.jp:~/testdir ~/.
Password:


・そしてローカルで確認すると見事書き戻しに成功

% ls testdir/
% obaba.gif obaba.txt obaba_baba.txt


以上の講義から分かったこと

  1. うっかり手元でファイルを消してしまい、その状態で rsyncかけても、リモートからはファイルは消えない。
  2. リモートのフォルダーをローカルに書き戻すには、rsyncの引数の順序を逆にすれば良い。

・・・疲れたのではしょった(汗)

*1:あってもなくても可

*2:あってもなくても可

*3:あってもなくても可

*4:あってもなくても可