1

X 時間ごとにルーチン タスクの cronjob を実行したいと考えています。cronjob は基本的にシェル スクリプトを実行し、シェル スクリプトは WGET コマンドを使用してリモート サーバーからファイルをダウンロードします。ただし、このシェル スクリプトを実行する前に、更新が利用可能かどうかを確認する php スクリプトを cronjob で実行し (BW を浪費し、同じファイルを何度もダウンロードしても意味がありません)、更新が利用可能である場合は、処理を続行する必要があります。 WGET コマンドを使用するシェル スクリプトへの更新 URL。

cronjobs は、ホストの管理パネルから設定されます。他に方法はありません。共有ホスティング サービスであるため、PHP の他の機能へのアクセスも許可されていません。

これは可能ですか?私は Linux の知識がありません。Fedora にいくつかの RPM をインストールしましたが、それだけです。我慢してください。ありがとう!

4

1 に答える 1

1

--timestampingwget コマンドに渡すだけです。

または、PHP の方法に精通している場合は、この質問で使用可能な方法を確認できます。

curlHEADリクエストを使用してファイルのヘッダーを取得し、ヘッダーを解析しますLast-Modified:

php スクリプトを通常のコマンドライン実行可能ファイルとして使用するには、これを出発点として使用します。

#!/bin/env php
<?php
echo "Hello World\n";

.php なしでファイルを保存し、サーバーが提供しない場所に置きます。

次に、実行可能ビットを設定して、通常のプログラムのようにスクリプトを実行できるようにします (u+x次のコマンドでは、[u]ser e[x]ecute 権限をhelloworldに付与することを意味chmodし、UNIX バリアントがファイル許可を設定するために使用するコマンドです)。

コマンド プロンプトを表すため、次のシーケンスで $ を省略します。

$ chmod u+x helloworld

コマンドライン スクリプトを bash プロンプトで呼び出して実行できるようになりました。

$ ls
helloworld
$ ./helloworld
Hello World
$

ここから、実行可能スクリプトのフル パスを取得できます。

$ readlink -f helloworld
/home/SPI/helloworld

これで、実行可能スクリプトへのパスを使用して cronjob をインストールできます。

于 2012-09-06T07:28:18.753 に答える