Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュールするように設定します。ご参考までに、詳細は以下の通りです。

Linux ヘルプによると、crontab コマンドには次のパラメータがあります。

-u ユーザー名: タイマーを操作するユーザーを指定します
-e: タイマーを編集 (すべて)
-l: タイマーを表示
-r: タイマーを削除します (/var/spool/cron ディレクトリからユーザーの crontab ファイルを削除し、デフォルトで現在のユーザーを削除します)
-i: タイマーを削除します (削除前に確認を求めます)

使用シナリオ1:

毎日午前0時に、前日の全営業マンと各チームの業績、各チームの人数、タスク量、完了量などをカウントし、簡単に閲覧できるようにデータベースに挿入するなど、定期的な統計業務を実行します。

使用シナリオ 2:

いくつかの反復操作を手動で実行する代わりに、たとえば、ガールフレンドが大学院入試のスコアラインの発表を待っているときに、大学院入試ウェブサイトのニュースの見出しをリアルタイムで監視し、同時にSMS検証コードプラットフォームに接続するタイミングプログラムを作成しました。ニュースの見出しのタイトルが変わると、携帯電話にテキストメッセージが送信されます。

(以下では、シナリオ 2 の crontab コマンドを例として使用します)

実行される jianting.php コード:

<?php
  $log = "/var/www/html/log.txt"; //ログファイル(書き込み権限を設定することに注意してください)
  $url = 'http://yz.chsi.com.cn/'; //監視するURL $info = file_get_contents($url); //ホームページのHTMLを取得する
  preg_match('|<h4>(.*?)<\/h4>|i',$info,$m);//通常の一致見出しコンテンツ if($m[1] != '<a href="/sytj/tjyx/gosytj.action?entrytype=yzgr" rel="external nofollow" target="_blank">2018 National Master's Admissions Adjustment Intention Collection Service System</a>') { //タイトルが変更されました//ログに記録があるかどうかを判断します。空の場合は、記録してテキストメッセージまたは電子メール通知を送信します $str = file_get_contents($log);
    $str = トリム($str);
    $bom = パック('H*','EFBBBF');
    $str = preg_replace("/^$bom/", '', $str); //BOMを削除
    if($str == ""){
      $text = '変更をリッスンする';   
      file_put_contents($log、$text、FILE_APPEND);
      //SMS または電子メール操作を送信します...
    }
  }

Linux で which コマンドを使用して PHP インストール パスを表示します。

どのPHP

スケジュールされたタスクを設定するには、インターネットから取得した画像を使用します (crontab 形式の説明)。

crontab -e

//PHPインストールパスで実行されたPHPファイルを実行します(実行権限を設定することに注意してください)
例: 5 0 * * * /usr/bin/php /var/www/html/jianting.php //毎日午前5時に実行

10 秒ごとに実行されるコマンドを記述する例:

* * * * * /usr/bin/php /var/www/html/jianting.php
* * * * * スリープ 10; /usr/bin/php /var/www/html/jianting.php
* * * * * スリープ 20; /usr/bin/php /var/www/html/jianting.php
* * * * * スリープ 30; /usr/bin/php /var/www/html/jianting.php
* * * * * スリープ 40; /usr/bin/php /var/www/html/jianting.php
* * * * * スリープ 50; /usr/bin/php /var/www/html/jianting.php

次に、スケジュールされたタスクがあることを確認します。

crontab -l

crontabサービスを再起動する

サービスcrondの再起動

サーバーを変更したら、PHP ファイルを実行できないという問題が発生しました。解決策は次のとおりです。

5 0 * * * /usr/bin/curl http://www.xxx.com/jianting.php // curl コマンドを使用して PHP ファイルにアクセスします 5 0 * * * cd /var/www/html && /usr/bin/php /var/www/html/jianting.php

この記事が Linux サーバーの設定に役立つことを願っています。

以下もご興味があるかもしれません:
  • 特定のコマンドを実行する必要があるときにシェル スクリプトの実行をタイミングする Linux crontab のソリューション
  • Linux のスケジュールタスク Crontab コマンドの使用に関する詳細な説明と概要
  • Linux での crontab スケジュール実行コマンドの詳細な説明
  • Linux でコマンドとスクリプトを定期的に実行する (cron、crontab、anacron)
  • Linux でタスクをスケジュール実行するための at コマンドと crontab コマンドの詳細な説明
  • Linux Crontab の起動、実行、編集コマンド
  • Linux crontab コマンドの形式と詳細な例 (推奨)
  • Linux crontab コマンドの使用

<<:  Reactでのイベントバインディングの実装は3つの方法を指しています

>>:  mysql ローカルログインでポート番号を使用してログインできない問題の解決策

推薦する

Dockerアーキテクチャ入門

Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...

CSS3 でシンプルな白い雲が浮かぶ背景効果を実現

これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...

25 個の CSS フレームワーク、ツール、ソフトウェア、テンプレートを共有

スプライトカウダウンロード CSS リントダウンロード プレフィックスダウンロード 1140px C...

docker-swarm をベースにした継続的インテグレーション クラスタ サービスの構築の詳細な説明

序文この記事は私自身の製作過程の簡単な記録です。練習中に質問があれば、一緒に話し合うことができます。...

カルーセル例の JS 実装

この記事では、カルーセルチャートの小さなケースを実装するためのJSの具体的なコードを参考までに共有し...

Dockerを使用してSpringBootプロジェクトをデプロイする方法

Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...

CentOS7 システムでスワップを増やす方法の例

序文スワップは、ディスク上にある「仮想メモリ」の一部である特殊なファイル (またはパーティション) ...

MySQLで日付と時刻を照会する方法

序文:プロジェクト開発では、一部のビジネス テーブル フィールドで日付と時刻の型が使用されることが多...

Javascript の奇妙な点をご存知ですか?

私たちのベテランの先人たちは、数え切れないほどのコードを書き、数え切れないほどの落とし穴に陥ってきま...

HTML フレーム、Iframe、フレームセットの違い

10.4.1 フレームセットとフレームの違い まず、フレームセットとフレームの違いについて説明します...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...