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コマンドの詳細な説明

1. ヘルプコマンド1. 現在のDockerバージョンを表示する docker バージョン2. イメ...

Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル

準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...

ファイルをアップロードするときに enctype フィールドを使用する理由は何ですか?

FORM 要素の enctype 属性は、フォーム データがサーバーに送信されるときに使用されるエン...

Docker で FastDFS をデプロイする方法

Dockerにfastdfsをインストールするディレクトリをマウント-v /e/fdfs/トラッカー...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

異なる列を持つテーブルのクエリ結果のSQLマージ操作

2 つの異なるテーブルをクエリするには、結果をマージする必要があります。たとえば、table1 の列...

dockerがredisを再起動するとmysqlデータが失われる問題を解決する

公式ドキュメント:したがって、mysql は次のように起動する必要があります。 docker run...

Vue 条件付きレンダリング v-if と v-show

目次1. 動詞-if 2. <template> で v-if を使用する3. キーを使...

VMwareがwin10ホームバージョンに64ビットオペレーティングシステムをインストールできない問題を解決します

問題の説明VMware Workstationが新しい仮想マシンを作成し、64ビットオペレーティング...

MYSQL サブクエリとネストされたクエリの最適化例の分析

ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

角度コンテンツ投影の詳細な説明

目次単一コンテンツ投影マルチコンテンツ投影単一条件のコンテンツ投影アプリ-人物-htmlアプリ担当者...

MySQL で CURRENT_TIMESTAMP を使用する方法

目次CURRENT_TIMESTAMPの使用CURRENT_TIMESTAMPを使用したタイムスタン...

Win10 の Linux サブシステムを有効にする方法を説明します (詳細な画像とテキスト付き)

今日は、Windows 10 で Linux サブシステムを有効にする方法を紹介します。早速、手順を...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...