サーバ上のファイルの簡単なバックアップ方法として、cronを使って自動定期でtarで固めつつ、別ホストにリモートコピーしておけば安心ですね。
ということで、自動的にリモートのファイルを落としてくる方法のメモ。昔はFTPが使えたけど、最近は安全のためにFTPサービス自体を禁止していたりする場合も多いので、代わりにscpを使う。
scpもデフォルトはパスワード認証なので、パスワードを聞かれないで済むようにRSA認証鍵を使う。
まず鍵を作る。
[@local]$ ssh-keygen -t rsa
自動コピーに使いたいのでパスフレーズを設定しない(Enterのみ入力)。秘密鍵が~/.ssh/id_rsaに、公開鍵が~/.ssh/id_rsa.pubにできる。
できたid_rsa.pubの内容をリモート側の~/ssh/authorized_keysファイル(無ければ作る)に追加する。で、そのファイルのパーミッションを0644にする。
[@remote]$ chmod 644 ~/.ssh/authorized_keys
このパーミッションの設定を忘れるとうまくいかないので注意。
あとはscpでこんなふうに↓やればファイルが落ちてくる。
[@local]$ scp user@remote:~/backup/work.tar.gz .
公開鍵を双方セットしておけば、もちろんサーバ側からバックアップ先にアップロードする形態もok。
仕事柄scpは愛用してます。
MacだとAppleScriptとセットで使ったりしていろいろ便利。