ホームページ バックエンド開発 PHPチュートリアル PHP+LINUXでタイミングサービスを実装する方法

PHP+LINUXでタイミングサービスを実装する方法

Jun 13, 2016 pm 01:34 PM
cron crontab linux nbsp php

PHP+LINUX でタイミング サービスを実装する方法
LINUX ではど​​のようなツールが使用されますか?

-----解決策--------------------------------
Linux 自動実行スクリプトの php を使用するにはどうすればよいですか?

概要

Linux の Crontab は、定期的に特定の PHP ファイルを実行することで、PHP を利用した Linux スクリプトの自動実行を実現するコマンドです。
Linux で PHP を使用してスクリプトを自動的に実行するにはどうすればよいですか?

PHP をインストールすると、実行可能ファイルが生成されます。ファイル名は php で、通常は PHP インストール パスの下の /php/bin/php にあります。 。 /usr/local/bin にコピーします。ターミナル モードで php プログラムを実行します。

php -q onlinnum.php

PHP は元々 Web アプリケーションで使用されていたため、HTML の HEADER を送信します。 ╋ここでは PHP をシェルスクリプトとして使用します╋ 「-q」は HEADER を送信しないことを意味します。 -q を追加せずに表示結果を試すことができます。この時点で、ターミナル モードで PHP コードを実行できるようになります。 Linux コマンド: cron デーモン

これはシステムに常駐するサービスで、その機能は、1 日 1 回または月 1 回のディスクのチェックなどの日常的な作業を実行することです。 cron デーモンは、スケジュールされた作業リスト (crontab) を毎分チェックして、実行すべき命令があるかどうかを確認し、すべての出力がメールでユーザーに送信されます。

Set crontab
コマンド: crontab -e

このコマンドは、実行リストを編集するために vi エディターを呼び出します。例:

0 0 1,15 * * fsck /home
1 * * * * /home/myhome/printhello

各行は、コマンドの前にスケジュールされたジョブを表します。スケジュールされた時間には、左から右に次のようにスペースで区切られた合計 5 つのフィールドがあります:

------------------- --- ----
00 から 99 までの分
0 から 24 時
01 から 31 までの日
01 から 12 までの月
01 から 07 までの平日、月曜日から 07 までを表します日曜日
* は「毎日」を意味します。毎日実行する場合は、3 番目の列
に * を記入します。 ----
したがって、上記の例の 2 つのタスクは次のとおりです:
毎月 1 日と 15 日に /home ディスクをチェックします
ファイル /home/myhome/printhello を毎月の最初の 1 分に実行します1 時間ごと

crontab の表示: crontab -l crontab の削除: crontab -r

これで、PHP および crontab コマンドを使用して Linux でスクリプトを自動的に実行する方法がわかりました。

他に注意すべき点は何ですか?

phpでOracleなどのデータベースを使用している場合は、実行スクリプト内でOracleの環境設定をエクスポートする必要があります。 cron で実行されるスクリプトはログインしていないユーザーによって実行されるため、システムに設定されている環境変数の値の多くが欠落しており、データベースへの接続時に問題が発生する可能性があります。

コマンドラインでもこれを行うことができます

/usr/local/webserver/php/bin/php -q path/a.php 先頭はphpのインストールパスで、後ろは実行する phpのファイル名とパス





------解決策--------- 1 階

PHP が入っていますサーバーサイドスクリプト言語では、特定のプログラムを定期的に実行したい場合に便利な方法がありません。
Linux サーバー上の Crontab は、安定して PHP スクリプトを定期的に実行できます。

Crontab は、ユーザーが一定の時間または一定の間隔でプログラムを実行できるようにするために使用されます。
Linux プラットフォームでタスク スケジュール機能を実装する必要がある場合、それを実現するための cron スクリプトを作成できます。
特定の頻度でタスクを実行します
Linux はデフォルトで crond プロセスを開始します。ユーザーが crond プロセスを開始または終了する必要はありません。
crond プロセスは、スケジュール タスクの読み取りと実行を担当します。ユーザーは、対応するスケジュール スクリプトを cron スケジュール設定ファイルに書き込むだけで済みます。
cron のスケジュールファイルは次のとおりです。

1. crontab
2. cron.d
3. cron.daily
4. cron.hourly
5. cron.monthly
6. cron.weekly

タスクが毎時毎月モードで実行されない場合は、対応する crontab を crontab または cron.d ディレクトリに書き込むことができます。
例:
スクリプト /opt/bin/test-cron.sh を 1 分ごとに実行します
cron.d 内に を作成できます> */ 1 * * * * root /opt/bin/test-cron.sh

PHP スクリプトを実行する

方法 1
PHP スクリプトを定期的に実行したい場合は、次のように直接書くことができます:
*/1 * * * * root -q /bin/local/php /path/to/your/php/我爱豆丁.php (毎回我爱豆丁.phpを実行してください)分)
この方法を記述するには、PHP を実行可能なスクリプト ファイルに変換する必要があることに注意してください。コマンドラインで、スクリプトが存在するディレクトリに移動します。
chmod +x iloveducin.php

方法 2
上記の方法には問題があります。インクルード ファイルがある場合です。 iidodin スクリプトでは、スクリプトは PHP へのパスをまったく見つけることができません。PHP は /bin/local/php ディレクトリ内のファイルを探しますが、もちろん見つかりません。
したがって、この状況が発生した場合は、次の手順を実行します。
ターミナルで次のコマンドを入力して、sh プログラムと lynx プログラムのパスを取得します。
whereis sh
whereis lynx
または
どの sh
どの lynx
どれかを入力すると、必要なパスが返されます。 lynx がシステムで利用できない場合は、他のテキスト モデル ブラウザである links、w3m、または links2 を試してください。これらのブラウザはスクリプトを実行します。
次に、sh ファイルを作成し、それを使用して lynx 経由で php ファイルを呼び出す必要があります。サーバーに lynx がインストールされており、sh パスが /bin/sh で、lynx パスが /usr/local/bin/lynx
#!/bin/sh
/usr/local/bin/lynx であると仮定します。 -source http://www.yoursite.com/folder/我爱豆丁.php
感嘆符に注意してください
このスクリプトを cron-lynx.sh という名前で保存します


のように見つけることができます。Web サイトのルート ディレクトリに置くことができます。
次に、myidudin.php のファイルを作成します。 cron が実行されると、lynx を通じて呼び出されます。このファイルにはブラウザ経由でアクセスできます。

次に、ホストの crontab を以下のように編集します。
*/1 * * * * root /bin/sh /usr/www/yourdirectory/sh_我愛豆丁s/cron-lynx.sh
/bin/sh と /usr の間にはスペースがあります。もう 1 つ注意すべき点は、sh ファイルと php ファイルが正しいことです。

例 1

Linux で PHP スクリプトを定期的に実行します
通常の方法で PHP を作成します
$file = '/htdocs/www/b100/ egspace /Bin/test/'.date('H').'-'.date('i').'-'.date('s').'.txt';
file_put_contents($file, date ('Y-m-d'));
?>
PHP ファイルの属性をシェル ファイルに変更します:
chmod +x test.php
次に、crontab を編集します:
crontab -e
行を追加します:
*/1 * * * * /usr/local/bin/php -q /htdocs/www/b100/egspace/Bin/test.php

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

IISとPHPの互換性:ディープダイビング IISとPHPの互換性:ディープダイビング Apr 22, 2025 am 12:01 AM

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

LinuxのDocker:Linuxシステムのコンテナ化 LinuxのDocker:Linuxシステムのコンテナ化 Apr 22, 2025 am 12:03 AM

Linuxは、豊富なツールとコミュニティサポートを提供するネイティブプラットフォームであるため、LinuxでDockerが重要です。 1. docker:sudoapt-getupdateとsudoapt-getinstalldocker-cedocker-ce-clicotainerd.ioを使用します。 2。コンテナの作成と管理:Dockerrun-D-Namemynginx-P80:80NginxなどのDockerrunコマンドを使用します。 3。DockerFileを書き込み:画像サイズを最適化し、マルチステージ構造を使用します。 4。最適化とデバッグ:DockerLogsとDockerexを使用します

session_start()が複数回呼び出されるとどうなりますか? session_start()が複数回呼び出されるとどうなりますか? Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

作曲家:AIを介したPHP開発の援助 作曲家:AIを介したPHP開発の援助 Apr 29, 2025 am 12:27 AM

AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

session_start()関数の重要性は何ですか? session_start()関数の重要性は何ですか? May 03, 2025 am 12:18 AM

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

CでDMA操作を理解する方法は? CでDMA操作を理解する方法は? Apr 28, 2025 pm 10:09 PM

CのDMAとは、直接メモリアクセステクノロジーであるDirectMemoryAccessを指し、ハードウェアデバイスがCPU介入なしでメモリに直接データを送信できるようにします。 1)DMA操作は、ハードウェアデバイスとドライバーに大きく依存しており、実装方法はシステムごとに異なります。 2)メモリへの直接アクセスは、セキュリティリスクをもたらす可能性があり、コードの正確性とセキュリティを確保する必要があります。 3)DMAはパフォーマンスを改善できますが、不適切な使用はシステムのパフォーマンスの低下につながる可能性があります。実践と学習を通じて、DMAを使用するスキルを習得し、高速データ送信やリアルタイム信号処理などのシナリオでその効果を最大化できます。

MacOS vs. Linux:違いと類似性の調査 MacOS vs. Linux:違いと類似性の調査 Apr 25, 2025 am 12:03 AM

MacOSANDLINUXBOTHEFFERUNIQUESTRENGSS:MacOSProvidesAuser-FriendlyExperienceとExcellenthardWareIntegration、Whilelinuxexcelsinfexibility andCommunitySupport.macos、decondbyApple、sleekinterfaceStemation、whiseedlinuxを使用しています

CでハイDPIディスプレイを処理する方法は? CでハイDPIディスプレイを処理する方法は? Apr 28, 2025 pm 09:57 PM

CでのハイDPIディスプレイの取り扱いは、次の手順で達成できます。1)DPIを理解してスケーリングし、オペレーティングシステムAPIを使用してDPI情報を取得し、グラフィックスの出力を調整します。 2)クロスプラットフォームの互換性を処理し、SDLやQTなどのクロスプラットフォームグラフィックライブラリを使用します。 3)パフォーマンスの最適化を実行し、キャッシュ、ハードウェアアクセラレーション、および詳細レベルの動的調整によりパフォーマンスを改善します。 4)ぼやけたテキストやインターフェイス要素などの一般的な問題を解決し、DPIスケーリングを正しく適用することで解決します。

See all articles