ssh経由でログインして実行すればうまくいくシェルスクリプトがcronでは動かない。
エラーメッセージは、「/usr/bin/rsync: Permission denied」
スクリプトの内容は、あるディレクトリ以下のファイルを別サーバに同期(バックアップ)。
以下のようなスクリプト
——————————
#!/bin/sh
/usr/bin/rsync -a –delete ~/test_dir/ example.com:~/test_dir
——————————
24時間ほどハマり、なんとか解決。
/usr/bin/rsyncを~/web/以下にコピーし、それを使う。
——————————
cp /usr/bin/rsync ~/web/bin/
——————————
修正後のシェルスクリプト
——————————
#!/bin/sh
~/web/bin/rsync -a –delete ~/test_dir/ example.com:~/test_dir
——————————
これでOK。
ちなみに、SSHの秘密鍵のパーミッションは600にすること。
開けすぎてもエラーになる。注意。