Cornの優先度設定について

このQ&Aのポイント
  • Cornの優先度設定に関する質問です。Linux初心者であるためノウハウがなく行き詰まっています。
  • 毎日1時にtest.plを実行したいと考えています。test.plは/home/test/testdir/にあります。
  • test.plを優先度設定(nice 15)で実行したいのですが、正しい設定がわかりません。
回答を見る
  • ベストアンサー

Cornの優先度設定について

Cornの優先度設定を行っていますが、Linux初心者であるため ノウハウがなく行き詰まっております。 有識者様大変お手数ですがご教授をお願いいたします。 毎日1時にtest.plを実行したいとかんがえております。 test.plは/home/test/testdir/中にあります。 cornの設定として crontab -eでエディタを開き以下の設定を行って正常動作しております。 0 1 * * * cd /home/test/testdir/; ./test.pl test.plを優先度設定(nice 15)で実行したいのですが 設定として下記(1)、(2)のどちらが正しいのでしょうか? (1)0 1 * * * nice 15 cd /home/test/testdir/; ./test.pl (2)0 1 * * * cd /home/test/testdir/; nice 15 ./test.pl 上記が両方とも違う場合、正常な設定を教えていただけないでしょうか?

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

  • ベストアンサー
  • ken-etsu
  • ベストアンサー率46% (55/119)
回答No.1

> (2)0 1 * * * cd /home/test/testdir/; nice 15 ./test.pl こっちが近いと思いますけど、niceの使い方が間違ってます。 cd /home/test/testdir/; nice -5 ./test.pl ※「15」の前にハイフンがない、「15」の後の全角スペースがヘン。 とすべきでしょうね。 それと、cORnじゃなくて、cROnですよ。

参考URL:
http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/nice.1.html
Ishiko145
質問者

お礼

ken-etsu様 いろいろと間違えていたようですね。。。 上記を設定した結果上手く行きました! ありがとうございます!!

関連するQ&A

  • cgi実行ディレクトリをデフォルト以外に追加設定する方法

    apacheのcgi-bin/のディレクトリはデフォルトだと、 DIR: /usr/local/apache/cgi-bin/ に設定されていると思います。 さらに実行出来るディレクトリを追加してあげる場合 httpd.confのScriptAliasを 手順的に追加するだけで出来るのでしょうか? 例 ScriptAlias /cgi-bin/testdir/ "/home/test/testdir/" <Directory "/home/test/testdir"> Options +ExecCGI </Directory>

  • fml の crontab の設定でこれはなんでしょう?

    FreeBSD で、fml を運用しています。 見てみると crontab に以下のように設定されているの ですが、 4 * * * * /home/public_html/fml/msend.pl /home/ml/testml -q この、/msend.pl ~ の後に続くパスの設定はなにを しているのでしょうか? 単純に、*.pl を定期的に動作させるには、 4 * * * * /home/public_html/fml/msend.pl で終わっていいような気がするのですが、しかも -q って何のオプションなのかも謎です。 ご存知の方がいましたら、よろしくお願いします。m(__)m

  • 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
  • プロセス起動時の優先度の設定

    XPにおける下記の設定方法なんですが、 cmd /c start ""優先度 /D"実行プログラムのパス" 実行プログラム 実行プログラムへのオプション /LOW 優先度「低」でアプリケーションを起動させる。 /BELOWNORMAL 優先度「通常以下」でアプリケーションを起動させる。 /NORMAL 優先度「通常」でアプリケーションを起動させる。 /ABOVENORMAL 優先度「通常以上」でアプリケーションを起動させる。 /HIGH 優先度「高」でアプリケーションを起動させる。 /REALTIME 優先度「リアルタイム」でアプリケーションを起動させる VISTAではなぜか /HIGH /REALTIME両方とも/ABOVENORMALになっちゃいます。 コマンドがわかる方いらっしゃいますでしょうか?

  • cronの設定

    Linux, cron, PHP CLI版を使って、定期的にPHPスクリプトを実行させようとしておりますが、どうも上手くいきません。 コマンドラインで試すと上手くいくのですが、cronを使用して動かすと、実行結果が Could not open input file: /home/---/---/--/test.php と返ってきて、実行されておりません。 以下、crontabの内容です。 MAILTO="-------.com" */1 * * * * /usr/local/bin/php /home/---/---/---/test.php お忙しい中すみませんが、どなたかアドバイスをいただけないでしょうか?

    • ベストアンサー
    • 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 以上

  • makeの変数設定の優先度

    オライリーの"C++クックブック"の日本語版を読んでいます。 p62のGNU makeの変数の説明について、実際の動作とずれがあるように思います。 以下の文がp62にあります。 「makefile自体に指定された値の方が、コマンドラインで指定された値よりも優先される。」 以下が作成したmakefileです。 ----- XXX=test all: @echo $(XXX) ----- make と実行すると test と表示されます。 make XXX=kkk と実行すると kkk と表示されます。 makefile自体に指定された値の方よりも、コマンドラインで指定した値が優先されているように思われます。 以下のページでもコマンドライン指定の方が優先度が高いように書いているように思われます。 http://www.02.246.ne.jp/~torutk/cxx/make/gnumake.html C++クックブックの日本語化の過程で間違いが入ったのでしょうか。

  • cronでのPerlスクリプト実行

    少し前に同様の質問をしましたが、やはり解決していませんでした。 #!/usr/bin/perl open(OUT,">/home/test/test.log"); print OUT "OK"; close(OUT); このスクリプトをcrontabに以下のように記述しました。 0 0 * * * /home/test/test.pl > /dev/null 2>&1 パーミッションは省略します。 このようにすると、正常にtest.logが出力されました。 しかし、本当に実行したいスクリプトを同様にしたところ、 正常に動作しませんでした。cronログには記録されます。 実際のスクリプトは長いのでここには掲載できませんが、 主な処理はおおよそ次のようなことをしています。 ・pmとplモジュールがあり、plからpmを呼び出している。 ・plもpmも自作のユーザ関数の組み合わせ ・ファイルはtestユーザが所有し、実行権限は777。  (動作確認後、徐々に落としていきます) ・plでは、use encoding 'utf8'。 ・スクリプトにオプションを付けて、引数を読み込む。 ・loggerでsyslogへ結果を出力。 ・子プロセスを生成して処理の一端を行わせている。 ・opendir、readdirなどを使用。 ・xxxxxx.datファイルを読み書きしている。 ・CPANにあったメール送受信モジュールを使用している。 ・ファイルをbz2圧縮している。 などです。 コマンドラインから実行すると確実に正常に動作します。 気になるのはPerlスクリプトの内容でモジュールを使うときは、 パスが通っていてもフルパス指定しないといけないのでしょうか? しかし、フルパスと言ってもせいぜいsystem()で実行するコマンドを フルパスにするくらいしか思いつきません。 うまく実行できない理由として考えられる可能性があることを 教えてもらえませんか? 根本的な解決としては、cronでの実行とコマンドラインからの実行は 何が違うのかが明確になれば対処できるのかもしれません。 よろしくお願いします。

  • Fedora11 crontab 設定エラー

    Fedora11「crontab -l」が「コマンドが見つかりません」になる。 (Q1) Fedora11で、cron を利用したく動作テストしています。 crontab は、/etc内にあります。 [root@betasei etc]# ls -l crontab* -rwxrwxrwx. 1 root root 420 2011-05-18 10:36 crontab テスト用スクリプトです。 [root@betasei etc]# cat test.sh echo xxxxxxxx gedit crontab で次のように編集しました。 [root@betasei etc]# cat crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin/:/etc/ MAILTO=root HOME=/ # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR #sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed 1 1 * * * /etc/test.sh 設定確認すると、次のようにエラーになります。 [root@betasei etc]# ./crontab -l ./crontab: line 13: 1: コマンドが見つかりません [root@betasei etc]# 1 1 * * * /etc/test.sh ここのところを ./test.sh にしてみたりしてもダメです。 どうしたらよいのでしょうか。 (Q2) ところで、crontabの編集は、ターミナルやろうとして、 crontab -e と実行すると、viか何かの空白編集画面が出ます。 上記 gedit crontab の画面のように初期値が出ません。 gedit crontabで編集してもよいのですね。 (Q3) /etc/crontab は、テキストファイルですね。 でも、このcrontabは実行ファイルですね。 ./crontab -l どうなってるですか。 初歩的な質問ですみません。

  • CRON で シェル を動かしたい

    Fedora Core で バックアップを取るため夜にJOBを実行させたく思っています。調べた所crontabでスケジュールできるとの事なのでテストをしているのですがうまくいきません。 1. mkdir /home/postgres/BKUP/test このコマンドをcrontab -e に直接書くと狙った時間にtestフォルダが作成されます。 2. バックアップを取る際はもう少し色々やることになると思うのでシェルにして実行させました。ここではテストなので先ほどと同じ分をシェルに書いてcrontab -eでスケジュールしますが作成されません。 ***シェルの内容*** #!/bin/sh mkdir /home/postgres/BKUP/test *********************************** ・/var/log には履歴がかかれていました。 ・シェルには全ての権限をつけました。(777) 何がいけないのでしょうか?教えてください。