• 締切済み

UNIX : cronにて自動実行すると、whoami が実行できない

Kornシェルスクリプト(仮名:a.ksh)内の処理で、 「 whoami >> file1 」 をcron設定にて自動実行したところ、上記のコマンド部分が実行されておらず、file1(ファイル)にユーザ名が記載されていませんでした。 しかし、a.kshを手動実行しfile1を見ると、ユーザ名が記載されていて、上記のコマンド部分が実行できていることを確認致しました。 なぜcronにて自動実行すると、上記のコマンド部分が実行できないのでしょうか? 皆様、よろしくお願い致します。

みんなの回答

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

パスは指定しなくて良いのですか?

ganiha
質問者

補足

ご回答ありがとうございます。 cron設定時のシェルスクリプトのパス名と「file1」のパス名は指定しています。 以上、よろしくお願い致します。

関連するQ&A

  • Cygwin で Ftpを実行するTOOLを cronで実行したい。

    よろしくお願いします。 Cygwinで FTPを使ってUnixのFileを取得するシェルスクリプトを作成しました。 シェルの種類はkshです。 このTOOLをCygwinのcronに仕掛けて自動的にFileを取得するようにしたいのですが、 どうもFTPのところで止まってしまうようです。 Cron設置時にLogを取得したところ 下記のメッセージが出力されていました。   User (10.200.xx.xx(none)) 自分のhomeに.netrc ファイルを作成して、FTP時にはUserID/Passwordを入力しなくて済むようにしているので スクリプトを自分で実行する分には何も入力しなくて言いのですが cron実行時にはなぜかUserIDの入力を促すところでストップし、プロセスも残ってしまっています。 自動的にUserID/Pawwwordを読み込ませるにはどうしたらよろしいでしょうか?

  • cronジョブ

    cronの実行時間は、/var/spool/corn/ユーザ のファイルで 時間が記述されているので、実行される時間はわかるのですが、 cronで、ある1つのシェルスクリプトが起動した時間から終了までかかった時間を知りたいのです。 (timeコマンド、メール送信による判断は無しでお願いします。) linuxのどこかのログファイルに、cronのシェル1つ1つのジョブの終了時間が記述されている ファイルはないでしょうか?(可能であれば、実行時間もわかるとよいのですが。) ご教授お願いします。

  • cronでシェルスクリプトが実行されない

    Linuxでファイルのバックアップを取るため backup.shというシェルスクリプトを組み、コマンドから実行する場合問題ないことを 確認しています。ところがcronに設定し自動実行すると内容が実行されておりません。 /var/log/cronを確認したところ時間通り実行されているというログは残っています。 /var/spool/cron/にrootというファイルを作成し 00 23 * * * /BACKUP/backup.shを実行させたいのです。 なぜ、手動の場合は問題がないのにcronで設定すると問題が生じるのでしょう? もし、お分かりの方は教えてください。 OSはRed Hat Linux release 8.0 (Psyche)です。

  • cronについて教えてください

    こんばんは。 Redhat Linuxを使用しております。 今回Cronで不要ファイルの削除を設定したいのですが、 その方法でわからない点があります。 「/etc/cron.monthly、cron.weekly、cron.daily、cron.hourly」 などの配下にシェルを置き、「/etc/crontab」ファイルの記載から これらシェルを呼び出すと思っています。 で「/var/spool/cron/user」ファイルなるものがありますが、 これの使用用途が分からず・・。 「/var/spool/cron/user」は必須の設定項目でしょうか?。 すみませんがアドバイスお願いします。

  • cronでftp自動転送を行いたい

    ftpで自動ログイン+ファイル転送するシェルを作成して、これをcronで 実行したのですが、ftpが実行されません。()シェル単体で実行すると、転送されます) 何が原因でしょうか?宜しくお願いいたします。 【環境】 FedoraCore5 【シェル(ftp.csh)の内容】 ftp -n xxx.xxx.xxx.xxx << _EOD user xxx xxx ascii put xxxxxxxx quit _EOD 【cron設定】 05 6 * * * root /share/ftp.csh

  • 【UNIX】unzip がcron で作動しない

    さくらインターネットのCRON機能で cd (対象ディレクトリ); /usr/local/bin/php -f (phpの名前)コマンドで PHPを自動的に実行しています。 その PHPには system("cd /zipファイルのあるパス/; unzip -Z hoge.zip"); というコマンドが実行されるようになっています。 (本来は、zipの解凍をしたいのですがテスト的にまず、ファイルの内容を表示) このphpを直接ブラウザ上で実行する場合は、うまく動くのですが CRON上で動かした場合は、unzip: not found というエラーが帰ってきます。 また、CRONのコマンド実行フォームにphp実行コマンドではなく、直接 "cd /zipファイルのあるパス/; unzip -Z hoge.zip" を実行しても unzip: not found が出てきてしまいます。 /home/[ユーザー名]/www/・・・と 絶対パスを指定しているので、パスは合っているかと思います。 unzip コマンドを実行するには予め何かを実行しないといけないのでしょうか? 何故、unzip: not found が出てしまうのか アドバイスよろしくお願いいたします。 サーバーOSバージョン FreeBSD 7.1-RELEASE-p16 i386

  • SMTPコマンドを自動で実行したい。

    SMTPコマンドを自動で実行したいと考えています。 # telnet localhost 25 と実行させます。 その後、自動で helo , quit といったコマンドを自動で 実行させれないでしょうか? シェルの機能を使ってもいいですし、telnetのオプションで実現可能で あればそれでもいいです。 # telnet localhost 25 はシェルスクリプトやcronから実行させる予定です。 よろしくお願いします。

  • 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の挙動について教えてください。 現在user「AAA」のcronにシェルスクリプトを登録しています。 コンソールから登録してあるスクリプトが正常に起動できることは確認できております。 しかしcron経由でコマンドが実行できない状態(/var/log/cronにコマンドを実行した履歴は残っています)でした。 色々試したところ、スクリプトの先頭で.bashrc(user「AAA」のもの)をsourceコマンドで実行するようにしたところ、cronからも起動できるようになりました。 (.bashrcには、スクリプト実行に必要な環境変数やパスの設定がされています) そこで質問なのですが、 (1) cronでコマンドを実行する場合、.bashrcは明示的に実行しなければいけないのでしょうか。 cronで実行される場合、ログインした状態と同じ環境で実行されるとばかり思っていたため、見落としていたのですが・・・。 以上、よろしくお願いいたします。

  • Easy botterのcron設定がうまくいきません。

    さくらインターネットで、Easy botterをつかったcronの設定をしていますが、うまくいきません。 いろんな方のサイトやQ&Aなどで、コマンドの入力例を拝見するのですが、 「アカウント名」とか「ユーザー名」などは分かるのですが、 「Easy botterをアップロードしたディレクトリ名」とか「実行ファイルのおいてあるディレクトリ名」と 表記される部分には何を入れていいのかさっぱり分かりません。 プログラミングどころか、PCの扱いもド素人なので、どんな文字列が入るのか、すら、想像がつかないのが現状です。 ちなみに、アップロードにはFFFTPというのを使っています。 この辺のダウンロードや設定は、他の人がやってくれたのですが、cronの設定については何度やっても上手くいかず、 お手上げされてしまいました。 最終的にやりたいことは、1時間おきに用意してある言葉を呟くようにしたくて、 cronを使ってbot.phpというのを起動させる(アクセスさせる)、ことでそれが可能になるみたいなので、 cron設定のコマンドの部分に入力するコマンドを完成させたいです。 今のコマンドは cd /home/ユーザー名/実行ファイルのおいてあるディレクトリ/ ; /usr/local/bin/php 実行ファイル名 > /dev/null というのを入力していて、ユーザー名は分かっていますし、実行ファイルというのがbot.phpだと思うので、 そのディレクトリの部分が埋まれば、正常に機能すると思うのですが… …ディレクトリ名はファイル名を同じ、みたいな説明も見ましたが、 その意味もよく分かりませんでした。 初歩的すぎる質問ですが、どなたか、よろしくお願いします。 質問自体も分かりにくかったら、すみません。