page_adsence

2011年4月6日水曜日

scpの通信ログをログファイルに残す方法

cronに登録してあるシェルスクリプト内でscpで通信していて、
その通信ログをログファイルに残そうと思って、リダイレクトしてみたんですが、
ログファイル自体は問題無く生成されたんですが、中身が一向に書き出されない。
で、原因を調べてみたら同じ問題にぶち当たってる人が知恵袋で聞いてました。


scpコマンドでのファイル転送結果を、ログ出力する方法を教えてください。


コマンドとしてはこんな感じらしい。
以下の場合は別サーバからファイルを受信する時のログをa.logにリダイレクトさせるってもの。
知恵袋の回答ではlocalhostをノンパスログインできる状態にしてからやるって書いてあったけど、
とりあえずパスワードありでもログが出せるかどうかの検証だけはできたので、試してみた。

ssh -t -q -A localhost scp user@server:送信元ファイル名 送信先ディレクトリ 1>>a.log


ちなみに指定されているsshのオプションを解説すると、
tオプションは仮想端末を割り当てるためのオプション。
qオプションは警告メッセージ・診断メッセージを抑制するためのオプション。
Aオプションは認証エージェントの転送を許可するためのオプション。

一応上記の方法でログは書きこまれるようになりました。
しかし、scpのログを残すだけでこんなに作業しないといけないとは…。
面倒くさいなぁ~。