こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

cron設定で正常に動作しない

Solaris8でcronの設定を行っております。

まず
/var/spool/cron/crontabs/rootファイルに

30 6 * * * /usr/local/shells/rsync-docs_com.sh

を追加しました。
cronのログを確認したところ以下のメッセージが表示されていましたが、実際に処理は動いてなさそうです。

> CMD: /usr/local/shells/rsync-docs_com.sh
> root 22386 c (月) 10月 9 06:30:00 2006
< root 22386 c (月) 10月 9 06:30:00 2006 rc=1


スクリプトファイルは処理が実行されるとログを出力するように設定していますがログが出力されません。

# sh /usr/local/shells/rsync-docs_com.sh
#
で手動で実行すれば正常にログも出力されます。

------------------------------------------------------------------------
#!/bin/sh
LOG_DIR=/home1/WEB_BACKUP/rsync_logs
DAYS=30
/usr/bin/find $LOG_DIR -name 'rsync_*.log' -mtime +$DAYS -exec /usr/bin/rm {} \;
/usr/local/bin/rsync -av --delete rsync://WWW7/www7-doc /home1/WEB_BACKUP/
www/docs_com >$LOG_DIR/docs_com-`date +%m%d%H%M`.log 2>&1
------------------------------------------------------------------------

何が原因か分かりますでしょうか?

よろしくお願い致します

投稿日時 - 2006-10-09 09:19:05

QNo.2460747

困ってます

質問者が選んだベストアンサー

/usr/local/shells/rsync-docs_com.sh に実行権はついてますか?

> # sh /usr/local/shells/rsync-docs_com.sh
> #
> で手動で実行すれば正常にログも出力されます。

とありますが、sh から起動するとスクリプトに実行権がなくても実行はできます。しかし、crontabの設定をみるとsh からの起動ではなくてスクリプトを直接指定しているので、そこがちょっと気になりました。

的外れならすみません。

投稿日時 - 2006-10-09 10:25:24

補足

ありがとうございました。
やはりアクセス権に実行権限が与えていなかったことが原因でした。
ポカミスです。

>tsuriito_001さん
ありがとうございます。
rootファイルを直で編集しましたが、cronの再起動は行ってましたので、実行権限が問題でした。


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

投稿日時 - 2006-10-10 14:40:40

お礼

早速のご回答、ありがとうございます。

ご指摘のようにスクリプトの実行権限が設定されておりませんでした。(すみません、確認漏れでした)

> sh から起動するとスクリプトに実行権がなくても実行はできます。
は知りませんでした、勉強になりました。

スクリプトファイルに実行権を与えて再設定を行いましたので、明日のスケジュールでの動作を確認するようにしたいと思います。

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

投稿日時 - 2006-10-09 11:55:50

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

既に解決済みだといいのですが、もし実行権の問題では
無かった場合のために。

rootファイルですが、直で編集しちゃいましたか?
それとも、crontab -e コマンドで編集しましたか?

前者の場合、cron の再起動が必要な可能性がありま
す。以下のようにしてみるのも良いでしょう。

# /etc/init.d/cron stop
# /etc/init.d/cron start

投稿日時 - 2006-10-09 18:21:43