BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

scpを使ってリモートからファイルをコピー

サーバ上のファイルの簡単なバックアップ方法として、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。

コメント

2008/4/ 9 00:00 from ゆりか

仕事柄scpは愛用してます。
MacだとAppleScriptとセットで使ったりしていろいろ便利。