• ベストアンサー

LinuxのCrontabについて質問します。

LinuxのCrontabについて質問します。 通常cronを編集するには、crontab -eを使用するかと思います。 そうするとエディターが起動し、入力モードになります。 今、シェルスクリプトで、crontabを書き変えたいのですが、直接cronのファイルを触ってしまってもよい物なのでしょうか? 以上、よろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.3

直接ユーザのcrontabファイルを更新するのは構いません。ただ、ファイルを更新するだけでは駄目です。cronデーモンが更新に気づきません。 更新後に、ユーザのcrontabファイルの置かれているディレクトリ(例えば/var/spool/cron)のタイムスタンプを更新する必要があります。 man 8 cronを参照。 crontabディレクトリのタイムスタンプの更新はユーザ権限では出来ませんので、一般ユーザのcrontabを更新したいのなら、 crontab -l > tmpfile tmpfileの更新処理 crontab tmpfile のようにするのが簡単です。

その他の回答 (2)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

所詮はただのテキストファイルですから、crontabを使わずに書き換えても問題ありませんよ。 crontab -eだって結局は外部エディタにcrontabの編集を投げてるだけですから。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

それでもいいんでしょうけど http://www.linux.or.jp/JM/html/cron/man1/crontab.1.html crontab file とか crontab - < file とかできます。

関連するQ&A

  • crontabについて

    Solaris8を利用していますが、Linuxでいう /etc/crontab のような、cron全体の設定ファイルのようなものはどこにあるのでしょうか? 分かる方がいれば、ご意見お願いします。

  • crontab編集について

    初めての投稿です。 自分でいろいろ調べたんですが解決ができないので皆様のお力を頼りたいと思います。 本題ですが、solaris8のcrontabについてです。 編集を行ないたいのですが、できません。 #crontab -e ファイル名 567  ←ファイルサイズが出力されます。     ←以降何も出ません。 ?   ←ctrl+Cで抜けようとすると『?』が出力され     ます     ←ctrl+Dで抜けれます。 編集をしたいのにファイル内容が表示されず編集できません。なぜでしょうか? 因みに、crontab -l ファイル名では結果が表示されます。 設定ファイルも問題なくcron.allowに該当ユーザを 設定しています。 以上、宜しくお願い致します。

  • 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 も確認しましたが、 登録したコマンドが実行された形跡はありませんでした。 お手数ではありますが、皆様のお知恵を貸して下さい。 宜しくお願い致します。

  • 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はバックアップを取っておく様なので…) 教えてください。おねがいします。

  • 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 以上

  • crontabコマンドはどこに記述されますか?

    RedHatLinux9を使用しています。 毎日2時にテープにバックアップをとろうと バックアップ用のスクリプトを作って #crontab -e 00 2 * * * /root/backup.sh としました。 これはどこに記述してあるのでしょうか? /etc/crontabにはないですし /etc/cron.daily/の中にもないので。 きちんと動いているのですが 確認したいんです。 よろしくお願いします。

  • 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登録もルートでやったのに上手く行かなくて、 途方に暮れています。 何か思いつく原因があったら御教授ください。 お願いします。

  • crontabでsql/plusの起動

    シェルスクリプトでsql/plusを呼び出し、ストアドプロシジャを 実行しようとしているのですが、crontabを使ったスケジュール起動を 行おうとすると、以下のようなエラーになってしまいます。 Message file sp1<lang>.msb not found Error 6 initializing SQL*Plus not foundと言われているファイルに心当たりがありません。 sql/plusがバックグラウンドで使っているファイルなのでしょうか? ちなみに、crontabを使わずに、コマンドラインから このシェルスクリプトを実行すると、正常に動作します。 UNIXもシェルスクリプトも超初心者です。 ご存知の方おられましたら、ご教授願います。 OSはRedHat6.2J、Oracle8.1.7です。

  • crontabの設定ができない(編集画面が出ない)

    CentOS5.2を使っています。 crontabの設定を行おうと、 # chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off で確認後、$ crontab -e  としましたが、 no crontab for aaabbb - using an empty one と出て、編集ファイルが表示されません。 $ crontab -l  とすると no crontab for aaabbb と出、 # crontab -l  も    no crontab for root  となります。   念のため # chmod 777 /etc/crontab としてみましたが、結果は同じです。 $ less /etc/crontab でファイルを開くと ------------------------ SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly /etc/crontab (END) ---------------------- となっています。 Webで設定例を検索すると、no crontab for aaabbb - using an empty one の下に crontab: installing new crontab と出ると記載されているのですが、 私の場合、このような表示や動きは出ませんが、どのようにして crontab を設定していくのでしょうか。どうか宜しくお願いします。

  • cronが実行されない

    環境:Vine Linux 2.6CR 現在、毎朝4時に、自分で作成したシェルをcrontabで登録して実行させているのですが、cronが動いてくれません。 psで、crondの実行は確認できています。 それと、cronの登録方法は、crontab -eで登録し、シェルは、/etc/cron.dailyに格納しています。 パスも登録しているのですが、実行してくれません。 どこがおかしいのでしょうか? アドバイスをお願いいたします。