- ベストアンサー
crontabの実行結果を知るには
いつもお世話になっております。 crontabの実行結果はどこかに記録されているのでしょうか?処理結果を出力しないコマンドを実行するように設定しているのですが、ちゃんと実行されているのか確認する方法が分かりません。 どうすれば実行されているか確認できるのでしょうか?
- nikuq
- お礼率75% (477/631)
- その他([技術者向] コンピューター)
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ANo.2の補足 例えばVineLinuxであれば、/var/log/cronファイルに実行結果が記録されます
その他の回答 (2)
crontab -eでcronの設定を書き込むときに、 MAILTO=hogohoge@hogehoge.com と1行入れて、実行結果をメールに送信してみてはどうですか? 処理結果を 出力しないとメール送信されなかったかな~? もし送信されなかったら、実行したいコマンドの後ろに[;echo メッセージ]とか入れて、メッセージ出せばいいかな
crontab でも結局batchみたいなものだから ファイルに書き出すなりしておいたらそれを見れば判るのでは?
お礼
ありがとうございます。 /var/log/cronに記録されておりました。 これで実行されている事が確認出来ました。 ありがとうございました!
関連するQ&A
- crontab での実行結果が違う
crontab でのスクリプト実行でほとほと困っています。 以下の処理で、 $test = "FILE"; @orglist = glob("$test*"); ・・・とIE からの実行では通常、配列に "FILE" の付く ファイルが全て格納されることを確認しています。 しかし、まったく同じスクリプトを crontab で 自動実行させてみると、何も配列に入ってこないことが わかりました。 cgi を実行させているマシンは FreeBSD 4.7-STABLE と あります。 何が原因なのでしょうか?
- ベストアンサー
- Perl
- crontabをshellで実行するには?
Linux(Centos 6.2)でユーザを追加する際に、 そのユーザ権限で定期的に実行するプログラム(getmail)を設定したいと思っています。 で、shellでユーザを追加しようと思って #!/bin/sh # $1 = user $2 = pass $USRDIR = ユーザのホームディレクトリ useradd -d $USRDIR $1 echo "$1:$2\n" | chpasswd chown -R $1 $USRDIR chmod -R 770 $USRDIR echo "*/1 * * * * $1 /usr/bin/getmail 2>/dev/null\n" >> /etc/crontab としようと思ったのですが、 色々なサイトで、「crontabの設定ファイルを直接書くのは良くない、crontabコマンドを使え」と言われており、 crontabで設定したいのですが、crontab -u $1 -e とすると、viが起動してしまい、 どうしたら良いかわかりません。。。 どうしたら良いのでしょうか? お願いします。
- 締切済み
- Linux系OS
- crontab -lの結果取得
教えて下さい。 <? $lines = shell_exec("crontab -l"); echo $lines; ?> 上記結果でcronのジョブ一覧を取得したかったのですが、期待通りの結果が返ってきませんでした。(何も取得できませんでした。) crontab -l自体は通常のコマンドとして使えているのですが、、 実行ユーザーの問題かと思い、"crontab -u root -l"ともしてみましたが結果は同じでした。 また、パスの問題かと思い、"/usr/bin/crontab -u root -l"ともしてみましたが結果は同じでした。 この場合、どこが問題となっているのでしょうか。 宜しくお願い致します。 FedoraCore9 php-5.2.5-7.fc9.i386 httpd-2.2.9-1.fc9.i386
- ベストアンサー
- PHP
- crontabでjavaだけが上手く動いていない
こんにちは、質問をさせていただきます。 Linux(FC5)でCrontabコマンドとplファイルを利用して、JAVAを定期的に起動させようとしています。 plファイルのログでは処理が実行されたようになっているのですが、何故かJAVAが起動していません。(結果からJAVAが実行されていません) Crontabでなく、手動でplファイルを実行すると問題なくJAVAは起動されます。 plファイルの詳細とcrontabの詳細およびファイルのモードは下記のとおりです。 よろしくお願いします。 ・plファイル cd /javaのディレクトリ /usr/java/jdk1.5.0_08/bin/java javaファイル echo "実行" >> date.log date >> date.log ・Crontab 00 17 * * * /plファイル ・crontabのファイルモード -rw------- 1 root root 42 12月 21 16:58 root 以上
- ベストアンサー
- Linux系OS
- crontabで実行されない部分がある・・・?
MySQLに登録されたユーザ名とアカウント名でLinuxのユーザを作る シェルスクリプトを作りました。 ルートにおいてあって、 ./test.sh とすると、 1.useraddでユーザが作られる 2.MySQLの予約テーブルから登録済テーブルにユーザ情報を書き換える 3.FTPユーザ登録がされる というものです。 これをcrontabで走らそうと思いました。 su -でルートになって、 crontab -e * * * * * /test.sh としたのですが、2.3は実行されました。 しかし1.のユーザ作成がされませんでした。 スクリプトいじった記憶はないですが一応確認ということで、 crontabをとめて手動でやってみたところ、1.2.3全て実行されました。 コードも悪くないし、crontab登録もルートでやったのに上手く行かなくて、 途方に暮れています。 何か思いつく原因があったら御教授ください。 お願いします。
- ベストアンサー
- Linux系OS
- PHPで編集したファイルをcrontabに設定する
PHPで編集したファイルを、crontabに設定しようと、プログラムを製造しています。 しかし、rootユーザーのジョブキューにPHPで編集したファイルの内容が反映できません。 下記URL(niftyホームページ)記載の通り、sudoを使用し、実行時にrootユーザーを指定し、rootユーザーのジョブキューにtext.txtの内容を設定しようとしていますが、反映できません。ちなみに、test、apacheユーザーに対しても試してみましたが反映できませんでした。以下に作業内容を記載しますので、どこがおかしいのか教えていただければありがたいです。 【作業内容】 (1)sudoを設定する。 1)sudoをインストールする。 2)/etc/sudoersを編集する(コマンドvisudoで実施)。 a)ユーザーと、それぞれの実行権限の追加。 root ALL=(ALL) ALL test test=(root) ALL apache test=(root) ALL b)wheel を全てのホストで、全てのユーザーのすべての権限を実行できるように設定 %wheel ALL=(ALL) ALL c)wheelはパスワードを入力せず、コマンドを実行できるように設定。 %wheel ALL=(ALL) NOPASSWD: ALL (2)sudoコマンドが正常に実行できるか確認する。TeraTermの画面からroot権限でcrontabを実行する。以下は、PHPで編集した、test.txtファイルの内容を、crontabへroot権限で設定しようとしています。 1)ログインユーザーrootで実行する sudo -u root crontab /var/document/test.txt 2)ログインユーザーtestで実行する sudo -u root crontab /var/document/test.txt 3)ログインユーザーapacheで実行する ※ユーザーapahceでログインすることは不可能です(以降省略)。 以上のコマンドそれぞれ実行し、rootユーザーのジョブキューにtest.txtの内容が入ることを確認。 (3)sudoコマンドが正常に実行できるか確認する。TeraTermの画面からtest権限でcrontabを実行する。以下は、PHPで編集した、test.txtファイルの内容を、crontabへtest権限で設定しようとしています。 1)ログインユーザーrootで実行する sudo -u test crontab /var/document/test.txt 2)ログインユーザーtestで実行する sudo -u test crontab /var/document/test.txt 以上のコマンドそれぞれ実行し、testユーザーのジョブキューにtest.txtの内容が入ることを確認。 (4)sudoコマンドが正常に実行できるか確認する。TeraTermの画面からapache権限でcrontabを実行する。以下は、PHPで編集した、test.txtファイルの内容を、crontabへapache権限で設定しようとしています。 1)ログインユーザーrootで実行する sudo -u apahce crontab /var/document/test.txt 2)ログインユーザーtestで実行する sudo -u apache crontab /var/document/test.txt 以上のコマンドそれぞれ実行し、apacheユーザーのジョブキューにtest.txtの内容が入ることを確認。 (5)(2)で試したコマンドを、PHPプログラムに埋め込み実行する。system()、sell_exec()、exec()でそれぞれ実行しました。 1)system("sudo -u root crontab /var/document/test.txt"); 2)sell_exec("sudo -u root crontab /var/document/test.txt"); 3)exec("sudo -u root crontab /var/document/test.txt"); 以上の内容をプログラムに記述し、実行しましたが、test.txtの内容をrootのジョブキューに、設定できませんでした。 《確認コマンド》 sudo -u root crontab -l なお、test、apacheユーザーも同様に試してみました。 ※testユーザー権限で実行 1)system("sudo -u test crontab /var/document/test.txt"); 2)sell_exec("sudo -u test crontab /var/document/test.txt"); 3)exec("sudo -u test crontab /var/document/test.txt"); ※apahceユーザー権限で実行 1)system("sudo -u apache crontab /var/document/test.txt"); 2)sell_exec("sudo -u apahce crontab /var/document/test.txt"); 3)exec("sudo -u apache crontab /var/document/test.txt"); 以上のプログラムを実行後、それぞれのジョブキューを確認しましたが、text.txtの内容をcrontabへ設定できませんでした。 《確認コマンド》 sudo -u test crontab -l sudo -u apache crontab -l system()、shell_exec()、exec()、それぞれの関数を使用し、管理者権限以外のコマンド(mkdir、cp、mv、rm等)を実行した場合、問題ないので、本問題は実行権限と考えていますが、以上の情報で何がどうおかしいの分かりますでしょうか?お手数をかけますが、ご回答お願いします。 【niftyでの回答】 niftyのサイトに以下のような質問・回答がございますが、本投稿の内容とほぼ同じと認識しています。 但し、niftyの回答をそのまま実行してみましたが、実行できませんでした。環境の違いのせいでしょうか? http://oshiete1.nifty.com/qa7939488.html ※上記設定(/etc/sudoers)は、セキュリティレベルが低いのは十分承知しています。以上の処理が正常に動作確認後、徐々にセキュリティレベルを上げていく予定です。
- 締切済み
- PHP
- crontab編集について
初めての投稿です。 自分でいろいろ調べたんですが解決ができないので皆様のお力を頼りたいと思います。 本題ですが、solaris8のcrontabについてです。 編集を行ないたいのですが、できません。 #crontab -e ファイル名 567 ←ファイルサイズが出力されます。 ←以降何も出ません。 ? ←ctrl+Cで抜けようとすると『?』が出力され ます ←ctrl+Dで抜けれます。 編集をしたいのにファイル内容が表示されず編集できません。なぜでしょうか? 因みに、crontab -l ファイル名では結果が表示されます。 設定ファイルも問題なくcron.allowに該当ユーザを 設定しています。 以上、宜しくお願い致します。
- ベストアンサー
- Solaris系OS
- crontab -e で作成したファイルはどこに?等
crontab -e で、viである時間で自動で毎日処理するのコマンドを書きました。 viの:w(上書き保存)で書いたファイルを保存しました。 そのファイル名はcrontab.1508(tmp/crontab.1508)と勝手になっていましたが、 find / -name crontab* をしても出てきませんでした。 確かに、viで:wした時にこの名前で上書き保存されたとおもうのですが・・・。 crontab -lで設定したファイルを確認すると、viで書いたものが出てきますので、ど こかに保存されていると思います。 質問ですが、(1)crontab -e で作成したファイルはどこにいってしまったのでしょうか。 (2)/etcに、/etc/cron.daily、/etc/cron.monthly、/etc/cron.weekly、/etc/cron.d /etc/cron.hourly、とありますが、これらはcrontab -eで作成したファイルと関係あるのでしょうか。 (3)別のマシンにこれらの/etcをコピーすれば同じ処理ができるのでしょうか。 (4)crontabの処理を追加していくには、crontab -e でviを起動し、追加していけばそれでよいのでしょうか。 (5)処理したいファイルを書き、crontab ファイル名 という方法もあるようですが、 この書いたファイルは/etc以下に置いても良いのでしょうか。 (一般的に、/etcはバックアップを取っておく様なので…) 教えてください。おねがいします。
- ベストアンサー
- その他(OS)
- crontab スケジュールを登録
solaris で crontab -e を叩き、 vi を使って編集をしているのですが、 # export EDITOR=vi # crontab -e */10 * * * * hoge :wq 上記のような操作を実行すると、 "/tmp/crontabKpaG5q" 1 行、18 バイト */10 * * * * hoge crontab: 前の行にエラーがあります; unexpected character found in line. crontab: 入力中にエラーが検出されました。crontab ファイルは生成されません。 っといったエラーメッセージが表示され、 スケジュールを登録する事が出来ません。 試しに crontab -l を実行してみましたがやはり空であり /var/cron/log も確認しましたが、 登録したコマンドが実行された形跡はありませんでした。 お手数ではありますが、皆様のお知恵を貸して下さい。 宜しくお願い致します。
- ベストアンサー
- Solaris系OS
- crontabのMAILTO設定解除の方法
crontabにて、特定の処理の前でメール送信先をMAILTO環境変数を設定し、その処理の後でデフォルトのメール送信先に戻したいのですが、戻すにはどのように設定すればよいでしょうか。 「MAILTO=""」だとメールが送信されなくなりますので、コマンドであれば「unset MAILTO」のような作業が必要になるのではないかと思いますが、同等の記述をcrontabで行う方法が分かりません。 crontabのオーナーを設定すればいいのでしょうが、もしMAILTOを解除する設定があるのであればそちらの方が良いと思いまして。 http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html > 結果メールを送る必要が生じた場合、 MAILTO も参照する。 > もしMAILTOが定義されていたら (およびそれが空でなかったら) > その名前のユーザーにメールを送る。 MAILTO が定義されていても > 値が設定されていなければ (MAILTO="")、 メールは送信されない。 > MAILTO が定義もされていなければ、メールは crontab の所有者に > 送られる。 環境:Red Hat Enterprise Linux ES release 4
- ベストアンサー
- Linux系OS
お礼
ありがとうございます。 /var/log/cronに記録されておりました。 これで実行されている事が確認出来ました。 ありがとうございました!