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 ローカルログインでポート番号を使用してログインできない問題の解決策

推薦する

display または visibility を通じて HTML 要素を表示または非表示にする

場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...

Linux dateコマンドの知識ポイントのまとめ

使用法: date [オプション]... [+フォーマット]または: date [-u|--utc|...

ウェブデザインには目的、アイデア、思考、そして粘り強さがなければならない

<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...

MySQL データベース アーキテクチャの詳細

目次1. MySQL アーキテクチャ2. ネットワーク接続層3. データベースサービス層4. 接続プ...

innodb_autoinc_lock_mode の表現と値の選択方法についての簡単な説明

前提条件: Percona 5.6 バージョン、トランザクション分離レベルは RR mysql>...

Docker で最初のアプリケーションをデプロイする方法

前回の記事では、Docker Desktop をインストールし、Kubernetes を有効にしまし...

Vue3 コンポジション API でロジックの再利用を実装する方法

Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...

水平プログレスバーの最後にテキストを表示するための実装コードの CSS 記述

問題の説明仕事で以下の成果を達成したいと考えています。 解決div タグに相対配置を追加し、絶対配置...

Linuxで大きなファイルを素早くコピーする方法

データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...

CSS+JS で水滴の波紋アニメーション ボタン効果を実装するサンプル コード

コードは次のようになります。 <!DOCTYPE html> <html lang...

Web開発で使用される基本的な概念と技術の紹介

本日は、Web 開発で使われる基本的な概念と技術を初心者向けに紹介します。A から Z まで合計 2...

MySQL 8.0ドライバとAlibaba Druidバージョン間の互換性の問題を解決

この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

単一の MySQL テーブル内の行数が 500 万を超えてはいけないのはなぜですか?

今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...