山本  洋介

山本 洋介

1636123200

Linuxサーバーでの基本的なcronジョブの設定

最近、サーバーでスケジュールされたタスクを設定する必要がありましたが、これは最初は少し怖くて怖いので、基本的なcronジョブを設定する手順についての簡単な記事を紹介します。この記事では、1日に1回メールを送信する簡単なPHPスクリプトを作成します。

前提条件

  • 基本的なコマンドラインの知識。
  • LinuxサーバーにSSHで接続する機能。

目標

  • Linuxサーバー環境で基本的なスケジュールされたタスク(cronジョブ)を設定する方法を学びます。
  • 毎日指定した時間にメールを送信するようにcronjobを設定します。

PHPからメールを送信する

まず、テストする簡単なPHPスクリプトを作成できます。簡単なメールを自分宛に送信するファイルを作成します。

<?php
$to = 'me@example.com';
$message = 'This is the message.';
$subject = 'Insert Subject Here';
$headers = 'From: noreply@example.com' . "\r\n" .
           'Reply-To: me@example.com';

@mail($to, $subject, $message, $headers);
?>

mail()PHPの関数に慣れていない場合は、公式ドキュメントをご覧ください。電子メールの送信先、送信元、件名、メッセージ、およびヘッダーの変数を設定しています。これは、電子メールを送信するための最新の安全な方法ではありませんが、機能するスクリプトなので、テストに使用します。これをcron.phpとして保存します

公開フォルダへのパスはLinuxディストリビューションによって異なりますが、このチュートリアルのために、/ var / www / html / crontestに配置します。したがって、スクリプトへのフルパスは/var/www/html/crontest/cron.phpになります。ファイルを押すことにより、ブラウザから直接このスクリプトをテストできます。Webサイトがexample.comの場合、おそらくexample.com/crontest/cron.phpになります。ファイルをロードして電子メールを受信すると、スクリプトが機能することがわかります。

localhostはPHPメールを送信するように設定されていないため、このスクリプトはライブLinux環境から実行する必要があります。

基本的なcron構文

cronジョブの設定を計算するCrontabGeneratorという便利なサイトがありますが、最初に構文がどのようになるかについて簡単に説明します。

CRONジョブの例

* * * * * /usr/bin/php /var/www/html/crontest/cron.php > /dev/null 2>&1

cronコマンドの一部

cronコマンドには、タイミングと実行するコマンドの2つの部分があります。この例では、コマンドには次の3つの部分が含まれています。

タイミング実行するスクリプトへのパス出力
* * * * */usr/bin/php/var/www/html/crontest/cron.php> /dev/null 2>&1
  • タイミング-分、時間、日、月、および平日の設定を設定します(以下で詳しく説明します)。
  • 実行-cronジョブは、にあるPHPを実行するために呼び出す必要があり/usr/bin/phpます。
  • スクリプトへのパス-実行する予定のファイルのフルパス。
  • 出力-(オプション)出力をファイルに書き込むか破棄することができます-> /dev/null 2>&1破棄されます。

上記の例では、cronジョブは毎分、より具体的には、毎月、毎日、毎時、毎時を送信するように設定されています。アスタリスクは、「すべて」を表すワイルドカードです。

  • -0から59までの分を設定します
  • 時間-0〜24の時間を設定します
  • -1〜31の日を設定します
  • -1〜12(1月〜12月)の月を設定します
  • -0〜6(日曜日〜土曜日)の曜日を設定します

これがどのように機能するかを理解するためのいくつかの基本的な例です。

構文説明
0 * * * *1時間に1回実行します(ゼロ分で1時間ごと)
0 0 * * *1日1回実行します(毎日深夜0分0分)
0 0 1 * *月に1回実行します(毎月1日の深夜0分0分)
0 0 1 1 *年に1回実行します(毎年最初の月の初日の深夜0分に)

奇数/偶数日、5分ごとなど、あらゆる種類の設定があり、探している正確なスケジュールを見つけるためのリソースが豊富にあります。

cronジョブの設定

cronがrootの下に設定されている場合はsudo、コードの前に実行する必要があります。

cronコマンドはとして知られていcrontabます。1日に1回メールを送信するようにcronジョブを設定するので、完全なコマンドは次のとおりです。

0 0 * * * /usr/bin/php /var/www/html/crontest/cron.php >/dev/null 2>&1

サーバーにSSHで接続したら、次のコマンドを使用して現在実行中のジョブがあるかどうかを確認し、すべてを一覧表示できますcrontabs

crontab -l
crontab: no crontab for user

次に、を編集しcrontabます。

crontab -e

この時点で、サーバーのデフォルトエディターを変更したことがない場合は、viエディターを使用している可能性があります。初めて使用するときは少し混乱して怖いことがあるので、次のようにします。

  1. escを押します。
  2. i(「挿入」の場合)を押して、ファイルの編集を開始します。
  3. cronコマンドをファイルに貼り付けます。
  4. もう一度escを押して、編集モードを終了します。
  5. :wqと入力して、ファイルを保存(w-書き込み)して終了(q-終了)します。

これcrontabで保存され、メールは1日1回深夜に送信されます。*/5 * * * *テストを高速化するために、5分ごとに設定できます。

ファイルに複数のcronジョブを配置することもできます。各コマンドを別々の行に配置するだけで、すべて実行されます。

結論

Envato Tutsのチュートリアルなど、cronジョブの詳細な説明に入るチュートリアルは他にもありますが、これは概念を理解するための簡単な記事です。

リンク: https://www.taniarascia.com/setting-up-a-basic-cron-job-in-linux/

#linux 

What is GEEK

Buddha Community

Linuxサーバーでの基本的なcronジョブの設定
山本  洋介

山本 洋介

1636123200

Linuxサーバーでの基本的なcronジョブの設定

最近、サーバーでスケジュールされたタスクを設定する必要がありましたが、これは最初は少し怖くて怖いので、基本的なcronジョブを設定する手順についての簡単な記事を紹介します。この記事では、1日に1回メールを送信する簡単なPHPスクリプトを作成します。

前提条件

  • 基本的なコマンドラインの知識。
  • LinuxサーバーにSSHで接続する機能。

目標

  • Linuxサーバー環境で基本的なスケジュールされたタスク(cronジョブ)を設定する方法を学びます。
  • 毎日指定した時間にメールを送信するようにcronjobを設定します。

PHPからメールを送信する

まず、テストする簡単なPHPスクリプトを作成できます。簡単なメールを自分宛に送信するファイルを作成します。

<?php
$to = 'me@example.com';
$message = 'This is the message.';
$subject = 'Insert Subject Here';
$headers = 'From: noreply@example.com' . "\r\n" .
           'Reply-To: me@example.com';

@mail($to, $subject, $message, $headers);
?>

mail()PHPの関数に慣れていない場合は、公式ドキュメントをご覧ください。電子メールの送信先、送信元、件名、メッセージ、およびヘッダーの変数を設定しています。これは、電子メールを送信するための最新の安全な方法ではありませんが、機能するスクリプトなので、テストに使用します。これをcron.phpとして保存します

公開フォルダへのパスはLinuxディストリビューションによって異なりますが、このチュートリアルのために、/ var / www / html / crontestに配置します。したがって、スクリプトへのフルパスは/var/www/html/crontest/cron.phpになります。ファイルを押すことにより、ブラウザから直接このスクリプトをテストできます。Webサイトがexample.comの場合、おそらくexample.com/crontest/cron.phpになります。ファイルをロードして電子メールを受信すると、スクリプトが機能することがわかります。

localhostはPHPメールを送信するように設定されていないため、このスクリプトはライブLinux環境から実行する必要があります。

基本的なcron構文

cronジョブの設定を計算するCrontabGeneratorという便利なサイトがありますが、最初に構文がどのようになるかについて簡単に説明します。

CRONジョブの例

* * * * * /usr/bin/php /var/www/html/crontest/cron.php > /dev/null 2>&1

cronコマンドの一部

cronコマンドには、タイミングと実行するコマンドの2つの部分があります。この例では、コマンドには次の3つの部分が含まれています。

タイミング実行するスクリプトへのパス出力
* * * * */usr/bin/php/var/www/html/crontest/cron.php> /dev/null 2>&1
  • タイミング-分、時間、日、月、および平日の設定を設定します(以下で詳しく説明します)。
  • 実行-cronジョブは、にあるPHPを実行するために呼び出す必要があり/usr/bin/phpます。
  • スクリプトへのパス-実行する予定のファイルのフルパス。
  • 出力-(オプション)出力をファイルに書き込むか破棄することができます-> /dev/null 2>&1破棄されます。

上記の例では、cronジョブは毎分、より具体的には、毎月、毎日、毎時、毎時を送信するように設定されています。アスタリスクは、「すべて」を表すワイルドカードです。

  • -0から59までの分を設定します
  • 時間-0〜24の時間を設定します
  • -1〜31の日を設定します
  • -1〜12(1月〜12月)の月を設定します
  • -0〜6(日曜日〜土曜日)の曜日を設定します

これがどのように機能するかを理解するためのいくつかの基本的な例です。

構文説明
0 * * * *1時間に1回実行します(ゼロ分で1時間ごと)
0 0 * * *1日1回実行します(毎日深夜0分0分)
0 0 1 * *月に1回実行します(毎月1日の深夜0分0分)
0 0 1 1 *年に1回実行します(毎年最初の月の初日の深夜0分に)

奇数/偶数日、5分ごとなど、あらゆる種類の設定があり、探している正確なスケジュールを見つけるためのリソースが豊富にあります。

cronジョブの設定

cronがrootの下に設定されている場合はsudo、コードの前に実行する必要があります。

cronコマンドはとして知られていcrontabます。1日に1回メールを送信するようにcronジョブを設定するので、完全なコマンドは次のとおりです。

0 0 * * * /usr/bin/php /var/www/html/crontest/cron.php >/dev/null 2>&1

サーバーにSSHで接続したら、次のコマンドを使用して現在実行中のジョブがあるかどうかを確認し、すべてを一覧表示できますcrontabs

crontab -l
crontab: no crontab for user

次に、を編集しcrontabます。

crontab -e

この時点で、サーバーのデフォルトエディターを変更したことがない場合は、viエディターを使用している可能性があります。初めて使用するときは少し混乱して怖いことがあるので、次のようにします。

  1. escを押します。
  2. i(「挿入」の場合)を押して、ファイルの編集を開始します。
  3. cronコマンドをファイルに貼り付けます。
  4. もう一度escを押して、編集モードを終了します。
  5. :wqと入力して、ファイルを保存(w-書き込み)して終了(q-終了)します。

これcrontabで保存され、メールは1日1回深夜に送信されます。*/5 * * * *テストを高速化するために、5分ごとに設定できます。

ファイルに複数のcronジョブを配置することもできます。各コマンドを別々の行に配置するだけで、すべて実行されます。

結論

Envato Tutsのチュートリアルなど、cronジョブの詳細な説明に入るチュートリアルは他にもありますが、これは概念を理解するための簡単な記事です。

リンク: https://www.taniarascia.com/setting-up-a-basic-cron-job-in-linux/

#linux