1

Red Hat サーバーで、毎分実行する必要があるシェル スクリプトを作成しました。私のスクリプトは にあり/mediaます。crontab を次のように編集しました。

* * * * * /media/statusshellscript.sh

私のスクリプトは間違いなく上記の場所にあり、5 つ星は毎分実行されることを意味します。

ああ..そして私のスクリプトは間違いなく機能します! ./statusshellscript を実行すると正常に動作するためです。とにかく、これが私のスクリプトです。基本的には、私が作成したphpスクリプトを実行するだけで、作業が楽になります。

#!/bin/bash
# Script to execute the PHP Script

cd ~
cd /media/PHPServerTest
php -f index.php

現在、Crontab はまったく何もしていません。次に何を試せばいいかわからない?

また..私が行ったように、許可は問題にならないはずですchmod 777 statusshellscript

4

3 に答える 3

1

cronjobを介して実行されていないが、コマンドによって正常に動作している場合、 2つの理由が考えられます

1)ファイルを実行可能にしたことがない、コマンドを使用して解決できる

sudo chmod +x filename 

2) パスが正しくありません。絶対パスを見つけるには、コマンドを使用できます

realpath(filename)

realpathがまだインストールされていない場合は、インストール方法のコマンドが表示されます

これらの点を確認することで、正常に動作するはずです。

于 2012-09-18T14:20:36.733 に答える
0

crontabのPATHは、シェルの場合と同じではありません。

PATHスクリプトに必要なすべてのものを含む を crontab で定義していることを確認してください。

また、スクリプトが#!目的のシェルを指す有効なマーカーで開始されていることを確認してください。

または、スクリプト内のすべてのコマンドにフル パスを使用します。

于 2012-09-18T14:14:50.900 に答える
0

他の人が言ったように、私の賭けは誤って設定されたPATHです。これをパスに入れてみてください:

「* * * * * /media/statusshellscript.sh」

スクリプトの実行時にその出力ファイルをチェックして、PATH を確認します。crontab で PATH を定義するのではなく、スクリプトで定義するだけです。

于 2012-09-18T14:51:31.387 に答える