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

cron + rsync + ssh? sh? Ubuntu?
リモートサーバへのファイル転送が成功しません。

何が原因かご指摘いただけませんでしょうか?

# 手動実行なら成功します。
/home/uuu/a/put.sh
sh /home/uuu/a/put.sh

# ところが、cronで実行すると リモートホストへの rsync が成功しません。
crontab -e
* * * * * /home/uuu/a/put.sh

リモートホストへはパスワード入力なしでssh接続できています。

Ubuntu 8.04 (Windows XP上のVirtualbox)

test.sh --------------
#!/bin/bash
export USER=uuu
export DIR=a
export FROM=/home/${USER}/${DIR}/
export TO=${USER}@s74.coreserver.jp:/virtual/${USER}/${DIR}/

# これが成功しません。
rsync -avz ${FROM} ${TO}

# 環境変数は正しく見えます。
echo "rsync -avz ${FROM} ${TO}" > /home/uuu/a/put.log

# パスも通っています。
which rsync >> /home/uuu/a/put.log

# 実行ユーザも正しく見えます。
whoami >> /home/uuu/a/put.log

# ローカルなら正しくrsyncされます。
date +%T >> /home/uuu/a/put.log
rsync -avz /home/uuu/a/ /home/uuu/b/
--------------

何が悪いのでしょうか?

tail /var/log/syslog
Feb 28 00:05:01 ubuntusv /USR/SBIN/CRON[19362]: (uuu) CMD (/home/uuu/a/put.sh)
Feb 28 00:06:01 ubuntusv /USR/SBIN/CRON[19389]: (uuu) CMD (/home/uuu/a/put.sh)
...



●質問者: zd2
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.jp 00 28 bash CORESERVER
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●10ポイント

crontab のユーザー権限の問題ではないでしょうか。

Ubuntuのcrontabでハマる」が参考になるかもしれません。

◎質問者からの返答

ローカルPC内ではrsyncするので権限はあるのではないでしょうか?


2 ● b-wind
●27ポイント

よくあるのはログイン実行時と CRON 実行時の環境変数の違い。


rsync のオプションを以下に変えてみたらどうなります?

rsync -avz -e ssh ${FROM} ${TO}

あとこれでも解決しないなら、エラーがメールで送信されているはずなのでそちらを確認してください。

◎質問者からの返答

ありがとうございます。

rsync -avz -e ssh ${FROM} ${TO}

にしてみましたが、成功しませんでした。

sh put.sh

では成功します。


メールは導入されていないので、エラーが見えません。

メール以外でエラーを確認する方法はございますでしょうか?


3 ● b-wind
●100ポイント ベストアンサー

メールは導入されていないので、エラーが見えません。

メール以外でエラーを確認する方法はございますでしょうか?

外部に配信されていないだけで、導入されていないってことは無いでしょう。


それはともかく、

rsync -avz ${FROM} ${TO} >> /tmp/rsync.log 2>&1

とでもすればエラーも含めてファイルに書き込まれます。

ssh接続が成功したかを確認する方法をご存知でしょうか?

接続先サーバーの認証ログを見れば良い。

大抵は /var/log/secure とか。

◎質問者からの返答

ありがとうございます!

>>とでもすればエラーも含めてファイルに書き込まれます。<<

こんな便利な方法があるんですね。


ばっちり出ました。

cat /tmp/rsync.log
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password,keyboard-interactive).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(454) [sender=2.6.9]

意味調べてみます。

取り急ぎ返信まで。

接続先サーバの ls /var/log/ は Permission denied でした。

関連質問


●質問をもっと探す●



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