人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxのcron実行で、サーバAの/home/hoge/foo.txtというファイルをサーバBにscpする方法を教えてください。(sshでrsyncでもかまいません)

1点次のような制約があります。

サーバAからサーバBへssh不可のため、サーバBからAにたいして実行するような仕掛けになります。

下記は参照済みですが、いずれも両方向のsshが可能な状態をさしていると解釈しています。
http://sonic64.com/2004-11-17.html
http://www.erde.co.jp/~katsu/wiki/index.php?rsync%20over%20ssh%20%A4%F2%BB%C8%A4%C3%A4%C6%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7
http://www-06.ibm.com/jp/developerworks/linux/040723/j_l-backup.html
http://www.jitaku-server.net/backup_ssh.html
http://diary.atzm.org/20060817.html

●質問者: P-mako
●カテゴリ:コンピュータ インターネット
✍キーワード:hoge HOME Linux rsync SSH
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●60ポイント ベストアンサー

両方向に ssh 出来なくてもやることはほぼ同じだとおもいます。

いかリンク先のページを纏めただけですが、

serverB$ ssh-keygen -t dsa

で key を作成。パスフレーズを聞かれたらそのまま Enter を押してください。

(自動処理用にパスフレーズ無しにします)

その後、serverB:.ssh/id_dsa.pub を serverA:/home/hoge/.ssh/authorized_keys を追記します。

注意事項としてファイル名が authorized_keys2 の可能性があることとすでに存在する場合は追記にすること。

あと、ファイルパーミッションが 600 となるように気をつけてください。

ここまでで自動化の前段階としての公開鍵の作成と登録は終わりです。

serverB$ ssh hoge@serverA

として初回のみ yes/no を聞かれ、2回目以降は何もでない(すでに聞かれている場合は1回目から何も出ない)で serverA にログインできることを確認してください。


あとはコピースクリプトを書くだけですので、serverB に

#!/bin/sh

scp serverA:/home/hoge/foo.txt /path/to/backup/

等といったファイルを作成し、cron で実行するのみです。

rsync の場合もほぼ同様で、

#!/bin/sh

rsync -e ssh serverA:/home/hoge/foo.txt /path/to/backup/

で同様です。毎回少しずつの変更であれば rsync の方が圧倒的に早いです。


以上で設定は完了ですが、リンク先ページで指摘されているようにセキュリティ上の懸念が残りますので、

serverA での SHELL を scponly 等の制限された SHELL に変更することをオススメします。

http://q.hatena.ne.jp/1157963785

◎質問者からの返答

ご回答ありがとうございました。

きれいに整理していただいた内容のとおりでcron実行可能でした。

おそらくNGだったのは、keychainで問題なくsshできていたからで、やはりパスフレーズを設定してはいけないということなんですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ