cronでatコマンドがうまく動かない

このQ&Aのポイント
  • RedHat7.0のcronでatコマンドを動かそうとしています。cron自体は正常に機能していて、時間になるとatqでジョブが溜まっているのも確認できます。しかし、test.shの処理が実行できていない問題が発生しています。cronで実行するとファイルが作成されない原因について、アドバイスをいただけると助かります。
  • RedHat7.0のcronでatコマンドを使用しようとしています。cronは正常に機能しており、atqコマンドでジョブがキューに格納されていることを確認できます。しかし、test.shスクリプトの処理が実行されていないようです。スクリプトは単体で正常に動作しており、ファイルが作成されますが、cronで実行するとファイルが作成されない問題が発生しています。この問題の原因についてのアドバイスをいただけると助かります。
  • RedHat7.0のcronでatコマンドを使用しています。cron自体は正常に動作しており、atqコマンドでジョブがキューに入っていることを確認しています。しかし、test.shの処理が実行されない問題が発生しています。test.shは単体で動作しており、ファイルが作成されますが、cronでの実行時にはファイルが作成されません。この問題についてアドバイスをいただけるとありがたいです。
回答を見る
  • ベストアンサー

cronでatコマンドがうまく動かない

こんにちは。RedHat7.0のcronでatコマンドを動かそうとしています。 *********************************************** 00 14 * * * root at -f test.sh 14:30 2001-8-8 *********************************************** こんな感じで書いてあります。 このtest.shも、at -f test.sh 14:30 2001-8-8も、 単体では正常に動いてることを確認しています。 また、cron自体も正常に機能していて、 時間になるとatqでジョブが溜まっているのも確認できます。 var/log/cronでatコマンドが正常にキックされているのも 確認済みです。 でも、test.shの処理が実行できていないんです~。 単体では実行できているのに・・。 ちなみにtest.shの中身は ************************** #!/bin/bash date >aaa.txt ************************** という単純なものです。 crontabに書いた時だけファイルが出来ないのはどういう訳なのか 原因に心当たりのある方、アドバイスいただけないでしょうか。 宜しくお願いいたします。

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

  • ベストアンサー
  • natural
  • ベストアンサー率37% (419/1115)
回答No.2

補足有り難うございます。(^_^) 一応aaa.txtもパス指定して試してみても良いかもしれませんね。 確実に書き込み出来る様に「その他」にもwrite権限を与えたディレクトリを指定して。 また、こちらは問題ないと思うのですが、test.shの実行権限は大丈夫でしょうか。 755とかにして試してみてください。 見当外れかもしれませんが、また何か思いついたら書き込ませて頂きます。

bunnyLove
質問者

お礼

できました!! スクリプトの中も date >/tmp/aaa.txt のように指定したところ、問題なくできました。 は~お騒がせしてすみません。 助かりましたー。また凡ミスですね。反省。 また何かありましたら宜しくお願いします。 ありがとうございました!

その他の回答 (1)

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

test.shが確かにカレントディレクトリに存在するのならファイル指定の部分を (略)at -f ./test.sh(略) としてみては如何でしょう。 カレントにパスがないのかなと思ったもので・・・。 因みにカレントにtest.shを置いていないならパス指定は変更の必要ありです。

bunnyLove
質問者

補足

naturalさん、回答ありがとうございます。 実はそこの部分省略して書いてしまったのですが、 実際はat -f /tmp/test.shのようになっています。 スクリプト内のaaa.txtにはパスはつけていませんが・・・。

関連するQ&A

  • crontab -e コマンドで編集してもCronが動作しません。

    testユーザーで手動でコマンド実行すると正常に動作するのですが、 crontab -eで、下記のようにCronを登録しても動作しません。。 00 12 * * * /var/www/html/bin/cron.sh args1 /var/log/cronを見ても Jun 19 12:00:01 web1 crond[3095]: (test) RELOAD (cron/test) というように、RELOAD となりまりコマンドが実行してくれません。。 Jun 19 13:01:01 web1 crond[9116]: (root) CMD (run-parts /etc/cron.hourly) というように、CMDが出ているのですが。。

  • atコマンドで実行予定の内容を知りたい

    atコマンドで実行予定の内容を確認するにはどうしたらよいでしょうか。 atqではジョブ番号しかわかりません。 ジョブ番号の内容がわかればよいのでしょうが、その方法がわかりません。 2010年1月17日

  • cronでtopコマンドを使用するスクリプトを実行すると値が取れないの

    cronでtopコマンドを使用するスクリプトを実行すると値が取れないのですが、 なぜなんでしょうか?どうすれば値が取れるようになるのでしょうか? OSはubuntu10.04を使っています。 $./test.shで直接動かすとtopの値は取れるのですが、 cronで動かした場合だとdateの値しか出力されていません。 -----test.sh----- #!/bin/bash FILENM="top.log" cat <<EOF >> ${FILENM} `date` `top -n 1` EOF

  • cronでとても困っています どなたかご教授いただけないでしょうか

    cronの設定でpersonユーザーで動くように設定したいのですが、動いてくれません なにか設定がおかしいのでしょうか ↓crontabの内容です # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.4208 installed on Thu Jan 25 12:14:20 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 15 12 * * * person /home/test/bin/test.sh rootに送られてくるエラーメッセージです /bin/bash: line 1: person : command not found ご教授いただけたら幸いです 何卒宜しくお願いいたします

  • cronとCRONの違い

    Ubuntuでpsコマンドを実行してプロセスを見ていると、 「cron」と「CRON」という2種類のプロセスがあることに気づきました。 この2つのプロセスの違いはなんなのでしょうか? 両方ともcrontabのプロセス、ってわけじゃないですよね・・・?

  • 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) 何がいけないのでしょうか?教えてください。

  • cronによるgriveの実行について

    Ubuntu13.10 64bitを使用しています。 cronを用いて定期的にgriveコマンドを実行し、GoogleDriveのフォルダを同期させようと考えています。 crontabには以下のように記述しました。 */15 * * * * /foo/bar/bin/grive.sh また、/foo/bar/bin/grive.shは以下のようになっています。 #!/bin/sh cd /foo/bar/googledrive/ grive しかし、同期を行ってくれていないようです。 /var/log/syslogを確認しましたが、以下のようなログが残っているので、一応実行されているとは思うのですが… Jan 21 10:15:01 bar CRON[28561]: (bar) CMD (/foo/bar/bin/grive.sh) Jan 21 10:15:01 bar CRON[28560]: (CRON) info (No MTA installed, discarding output) 直に端末から「/foo/bar/bin/grive.sh」と打った時には正常に実行されることを確認済みです。 なお、/foo/bar/bin/にはパスを通してあります。 また、/foo/bar/bin/grive.shの中身を以下のように置き換えた場合は実行されて、ディレクトリも生成されました。 #!/bin/sh mkdir ~/testdir どうすれば、cronでgriveを実行できるようになるのでしょうか。 回答よろしくお願いいたします。

  • CORESERVERでCRONジョブが実行されない

    この手の情報はネット上に沢山あるので自分なりに調べたのですが解決に至りませんでしたので質問させてください。 やりたいことは、CORESERVERのCRONジョブで設定した時間にcron.shを動かしてtest.phpを実行したいです。 ■現状 ・CRONジョブは毎日午前11時に動作するように設定 0 11 * * * ・CORESERVERからCRONジョブのエラーや成功メールが1通も届かない ・Tera Term で直接CRONを実行したが500エラーが返ってくる ・シェルスクリプトで動かしたいPHPファイルに問題はなかった(直接実行して成功) ■やったこと cron.shをCORESERVERのトップディレクトリに設置 /virtual/ユーザー名/cron.sh cron.shに記述した内容は #!/bin/sh #PHP /usr/local/bin/php /virtual/ユーザー名/public_html/サイトディレクトリ/php/test.php exit です。cron.shのパーミッションは705にしました。改行コードはLFです。 test.phpまでのディレクトリのパーミッションも705になっています。test.phpのパーミッションは644です。 Tera Term に入力したコマンド? sh /virtual/ユーザー名/cron.sh 上記を決定すると以下のスターテスが返ってきました。 Status: 500 Internal Server Error Content-type: text/html 何か根本的な間違いをしているのでしょうか? アドバイスをお願いいたします。

  • コマンド入力だと動くけど、cronだと動かない。

    コマンド入力だと動くけど、cronだと動かない。 下記のようなコマンド(例)をcronによる時間指定で動かしたいのですが 端末から処理を呼び出すと、期待したとおりの動作となりますが cronに登録したところ、動作しません。 #! /bin/sh su user -c 'ssh test -n TZ=UTCO exec hostname' >> /tmp/test.log 原因としてはどういったことが考えられるでしょうか OS: SunOS 5.8

  • Linuxのコマンドでcronから実行パスを確実に取り出すにはどうした

    Linuxのコマンドでcronから実行パスを確実に取り出すにはどうしたらいいでしょうか? 具体的には下記から"/home/test/test.sh"の部分を確実に取り出したいです。 */5 * * * * /home/test/test.sh > /dev/null sedとcutを使って取り出す方法はありますでしょうか? パスは場合によって変わる場合があり、test.shのみいつも同じです。 test.shより前の空白までを取り出せればよいのですが、 何かいい方法はありますでしょうか?