LinuxでCronを使用してシステムコマンドをスケジュールする方法

LinuxでCronを使用してシステムコマンドをスケジュールする方法

Linux上のCronでシステムコマンドをスケジュールできます。cronとは何ですか?これはバックグラウンドサービスであり、構成すると、任意のコマンドスクリプト、またはプログラムをスケジュールに従って実行できます。何よりも、それは完全にカスタマイズ可能です。

Cronは非常に便利ですが、コマンド構文は、特に平均的なユーザーにとっては非常に混乱します。このため、Cronを簡単に理解する方法と、Linuxマシンでシステムコマンドを自動的にスケジュールできるようにするためのコマンド構文について説明します。

Cronieをインストールする

ほとんどの場合、Cronはプリインストールされており、多くのLinuxディストリビューションにセットアップされています。この理由は、CronがLinuxSysAdmin業界の多くのコマンドライン自動化の中心であるためです。

ほとんどのディストリビューションでCronがセットアップされている場合でも、存在するすべてのLinuxオペレーティングシステムにCronがインストールされているわけではありません。したがって、Cronの使用方法について説明する前に、OSにインストールする必要があります。

このセクションでは、多くのRedhatLinuxディストリビューションにデフォルトで搭載されているツールであるCronieのインストールに焦点を当てます。理由?Cronの標準機能があり、パッケージはほとんどのLinuxディストリビューションのソフトウェアリポジトリにあります。

Cronieパッケージをインストールする必要があるかどうかを判断するには、ターミナルウィンドウを起動し、以下のコマンドを入力します。何も起こらない場合は、システムにシステムコマンドをスケジュールする方法がないため、Cronieをインストールする必要があります。

Crontab —h

Ubuntu / Debian

UbuntuとDebianはCronieをサポートしていません。ただし、これらのLinuxディストリビューションは、多くの場合、そのままCronで構成されています。何らかの理由でシステムがCrontabを使用できない場合は、DebianまたはUbuntuのwikiページを参照してください。

Arch Linux

Arch Linuxは日曜大工のLinuxディストリビューションであり、ユーザーはシステムにすべてのパッケージをインストールして自分で構成することが期待されています。その結果、多くのユーザーは、Cronを使用してシステムコマンドをスケジュールできるアプリのインストールを怠っています。幸い、Cronieアプリケーションは「ArchLinuxCore」ソフトウェアリポジトリにあります。Cronieを入手するには、以下のPacmanコマンドを入力してください。

sudo pacman -S cronie

Fedora

Fedora Linuxはワークステーションのオペレーティングシステムであるため、CronおよびCrontabと既に対話できる可能性はかなり高いです。それでも、何らかの理由でできない場合は、CronieはDNFパッケージツールを使用して簡単にインストールできます。

sudo dnf install cronie -y

OpenSUSE

OpenSUSE Leap(ほとんどのユーザーが使用しているSUSEのリリース)は、Fedoraによく似たワークステーションOSであるため、Cronはすでにセットアップされている必要があります。ただし、そうでない場合は、次のZypperコマンドを使用してCronieをインストールします。

sudo zypper install cronie

汎用Linux

Cronシステムを持たないあいまいなLinuxディストリビューションでは?幸運なことに、Cronieはオープンソースであり、ビルド手順は非常に簡単です。詳細については、このページにアクセスしてください

cronでシステムコマンドをスケジュールする

Cronを使用してシステムコマンドをスケジュールするには、「Crontab」が必要です。「Crontab」は、操作を保持し、実行するためにCronデーモンに渡すファイルです。

システムのCrontabにアクセスするには、ターミナルを起動し、以下のコマンドを実行します。Nanoのような簡単なものの代わりに、必ずEDITOR = nano行を含めるようにしてください。そうしないと、はるかに難しいエディターが与えられます。

EDITOR = nano crontab -e

コマンドを実行した後、テキストエディタは新しい空白のファイルを開きます。この空白のファイルは、コマンドが移動する場所です。

Cronでは、スケジューリングは比較的複雑です。分、時間、日、月、平日で移動します。ただし、Cronスケジュールを手動で書き出す方法については説明しません。代わりに、CrontabgeneratorのWebサイトを紹介します。これにより、作業がはるかに快適になります。

LinuxでCronを使用してシステムコマンドをスケジュールする方法

ジェネレーターに到達したら、チェックボックスを使用してスケジュールを選択します。次に、スケジュールに問題がなければ、[実行するコマンド]ボックスに移動します。

「実行するコマンド」ボックスに、Linuxコンピュータまたはサーバーに自動的に実行させたいターミナルコマンドを書き出します。「コマンド」は、「apt update」、「ping」などのLinuxコマンドに限定されないことに注意してください。これらは何でもかまいません。コマンドがターミナルで機能する限り、Cronでも機能します。

LinuxでCronを使用してシステムコマンドをスケジュールする方法

「実行するコマンド」ボックスにコマンドを入力し終えましたか?緑色の[GenerateCrontab Line]ボタンをクリックして、テキスト行を出力します。次に、出力ページでテキストを強調表示して、Crontabテキストエディタに戻ります。

LinuxでCronを使用してシステムコマンドをスケジュールする方法

Ctrl + Shift + Vを押して、コードをNanoに貼り付けます。次に、Ctrl + Oで保存します。Crontabファ��ルが保存されると、大変な作業が完了します。Ctrl + Xでエディターを終了します。

注:Cronieを使用していない場合は、編集後にcrontab -eを実行して、新しいファイルが有効になるようにする必要があります。

編集が完了すると、Cronバックグラウンドサービスが通知を受け取り、指定したスケジュールで実行します。


UbuntuサーバーにGitLabをインストールする方法

UbuntuサーバーにGitLabをインストールする方法

GitLab を Ubuntu サーバー上で動作させたいと考えていますか? GitLab は、GitHub のようなサービスに代わる、強力な自己ホスト可能な代替サービスです。これを使用すると、次のことができます

SELinux による Ubuntu Linux サーバーの保護

SELinux による Ubuntu Linux サーバーの保護

SELinux をインストールしてアクティブ化することで、Ubuntu Linux サーバーにセキュリティを追加する方法を学びます。

Cockpit を使用して Linux サーバー上で NFS を構成する

Cockpit を使用して Linux サーバー上で NFS を構成する

Linux サーバーに NFS 共有をマウントする簡単な方法が必要ですか? Cockpit アプリを使用して NFS 共有をマウントする方法を学びます。

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 の長期サポートが登場しました! デスクトップまたはラップトップを最新の Ubuntu リリースにアップグレードする方法を学びます。

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

Dockerコンテナにファイルを転送する方法

Dockerコンテナにファイルを転送する方法

ファイルを Docker コンテナに転送する必要がありますか? Docker cp ツールを使用すると、コンテナーとの間でファイルを簡単に移動できます。

Linux に DEB ファイルをインストールする方法

Linux に DEB ファイルをインストールする方法

.DEB ファイルとは何ですか? それを使って何をしますか?Linux PC に DEB ファイルをインストールするさまざまな方法を学びましょう。

GOG Galaxy を Linux 上で動作させる方法

GOG Galaxy を Linux 上で動作させる方法

GOG.com のゲームを所有していますか? ビデオ ゲームを楽しむために Linux PC に GOG Galaxy クライアントをセットアップしたいですか? このガイドに従ってください。

CentOS に Docker エンジンをインストールする方法

CentOS に Docker エンジンをインストールする方法

Docker Engine は、Linux およびその他のプラットフォーム用のオープン コンテナ化プログラムです。Docker Engine は、次のように動作する自己完結型コンテナを管理します。

Ferdi とすべてのチャットを 1 つにまとめる方法

Ferdi とすべてのチャットを 1 つにまとめる方法

Slack、Discord、その他多くの生産性向上ツールを Linux システムにインストールすることにうんざりしていませんか? それらをすべて 1 つに結合できたらいいのにと思いますか