アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQLに登録されたユーザ名とアカウント名でLinuxのユーザを作る
シェルスクリプトを作りました。
ルートにおいてあって、 ./test.sh とすると、
1.useraddでユーザが作られる
2.MySQLの予約テーブルから登録済テーブルにユーザ情報を書き換える
3.FTPユーザ登録がされる

というものです。
これをcrontabで走らそうと思いました。
su -でルートになって、
crontab -e
* * * * * /test.sh
としたのですが、2.3は実行されました。
しかし1.のユーザ作成がされませんでした。
スクリプトいじった記憶はないですが一応確認ということで、
crontabをとめて手動でやってみたところ、1.2.3全て実行されました。

コードも悪くないし、crontab登録もルートでやったのに上手く行かなくて、
途方に暮れています。
何か思いつく原因があったら御教授ください。
お願いします。

A 回答 (4件)

スクリプト内で使用しているコマンドへのパスを絶対で指定してみてください。


ファイルを扱っているならばファイルへのパスも絶対で指定してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
絶対パスで通したところ、上手く行きました。
その後、削除すべきファイルが削除されない問題が出ましたが、
そこも同じように解決できました。
ありがとうございました。

お礼日時:2006/12/12 10:38

crontabで動く時のPATHは特に指定しなければ /usr/bin:/bin です。


useraddは普通 /usr/sbin/ にあるので、フルパスで書かないと動かないです。

そもそも、cronジョブでエラーになればユーザー(この場合root)にメールが送られているはずです。そこにエラーメッセージが出ています。rootでmailコマンド。
    • good
    • 0
この回答へのお礼

ありがとうございます。
エラーメッセージの読み方等良く分かりませんが、
エラーの解析はサーバ管理の肝になる部分なので、
しっかり勉強しようと思います。
ありがとうございました。

お礼日時:2006/12/12 10:40

直接の回答ではないですが、


/test.sh > /test.log 2>&1
としてエラーログが出力されてないか調べてみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
手動でエラーログを出力させる方法があるんですね。
調べて次回使ってみようと思います。

お礼日時:2006/12/12 10:37

* * * * * root /test.sh



とかじゃなかったっけ?書き方
    • good
    • 0
この回答へのお礼

ありがとうございます。
crontab -u root -lで見たところちゃんとrootで動くように
なっていました。

お礼日時:2006/12/12 10:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A