2021年には、人々がLinuxをこれまで以上に愛する理由が増えました。このシリーズでは、Linuxを使用する21の異なる理由を共有します。自動化は、Linuxを使用する最も良い理由の1つです。
Linuxで私のお気に入りの1つは、私のために仕事をしたいという意欲です。時間を浪費したり、エラーが発生したり、忘れがちなタスクを繰り返し実行する代わりに、Linuxにタスクを実行するようにスケジュールします。
「自動化」という用語は、魅力的であると同時に威圧的である可能性があります。モジュール式にアプローチするのが役立つと思います。
1。何を実現したいですか?
まず、どのような結果を生み出したいかを知ってください。画像に透かしを入れていますか?雑然としたディレクトリからファイルを削除しますか?重要なデータのバックアップを実行していますか?何を目指すべきかがわかるように、自分でタスクを明確に定義してください。 1日に1回よりもはるかに少ない、毎日実行しているタスクがある場合は、自動化の候補になる可能性があります。
2。必要なアプリケーションを学ぶ
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
大きなタスクを小さなコンポーネントに分割し、各結果を手動で、ただし繰り返し可能で予測可能な方法で生成する方法を学びます。 Linuxで実行できることの多くはスクリプト化できますが、現在の制限を認識することが重要です。複数の画像のサイズ変更を自動化してメールで送信できるようにする方法を学ぶことと、機械学習を使用して週刊ニュースレターの精巧なアートワークを生成する方法を学ぶことには、違いがあります。午後に学ぶことができるこれらのことの1つと、もう1つは何年もかかる可能性があります。しかし、私たちは皆どこかから始めなければならないので、小さなことから始めて、常に改善する方法を探しています。
3。自動化
Linuxで自動化ツールを使用して、定期的に実行します。これがこの記事で取り上げるステップです!
何かを自動化するには、タスクを自動化するスクリプトが必要です。テストするときは、物事をシンプルに保つのが最善です。そのため、この記事で自動化するタスクは、hello
というファイルを作成することです。 /tmp
内 ディレクトリ:
#!/bin/sh
touch /tmp/hello
その単純なスクリプトをコピーしてテキストファイルに貼り付け、example
という名前を付けます 。
すべてのLinuxインストールに付属している組み込みの自動化ソリューションはcronシステムです。 Linuxユーザーは、一般的にcronをタスクのスケジュールに使用する方法(通常は「cronジョブ」と呼ばれます)と呼びますが、cronの機能を提供するアプリケーションは複数あります。最も用途が広いのはcronieです。その利点は、しないことです。 システム管理者向けに設計された従来のcronアプリケーションと同じように、コンピュータは常にオンになっていると想定します。
Linuxディストリビューションが提供するcronシステムを確認します。 cronie以外の場合は、ディストリビューションのソフトウェアリポジトリからcronieをインストールできます。ディストリビューションにcronieのパッケージがない場合は、古いanacron
を使用できます。 代わりにパッケージ。 anacron
コマンドはcronieに含まれているため、取得方法に関係なく、anacron
があることを確認する必要があります。 続行する前に、システムで使用可能なコマンド。設定によっては、Anacronに管理ルート権限が必要になる場合があります。
$ which anacron
/usr/sbin/anacron
Anacronの仕事は、自動化ジョブが定期的に実行されるようにすることです。これを行うために、anacronは、ジョブが最後に実行された時刻を確認してから、ジョブを実行するように指示した頻度を確認します。
5日に1回スクリプトを実行するようにanacronを設定するとします。コンピューターの電源を入れたり、スリープから復帰したりするたびに、anacronはログをスキャンして、ジョブを実行する必要があるかどうかを判断します。ジョブが5日以上前に実行された場合、anacronがジョブを実行します。
多くのLinuxシステムには、cronが実行するためのいくつかのメンテナンスジョブがバンドルされています。私は自分のジョブをシステムジョブから分離したいので、ホームディレクトリにディレクトリを作成します。具体的には、~/.local
という隠しフォルダがあります (「グローバル」コンピュータシステムではなく、ユーザーアカウント用にカスタマイズされているという意味で「ローカル」)ので、サブディレクトリetc/cron.daily
を作成します。 私のシステムでcronの通常のホームをミラーリングします。また、最後にジョブが実行された時刻を追跡するために、スプールディレクトリを作成する必要があります。
$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron
定期的に実行するスクリプトは、~/.local/etc/cron.daily
に配置できます。 ディレクトリ。 example
をコピーします 今すぐディレクトリにスクリプトを記述し、chmodコマンドを使用して実行可能としてマークします。
$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example
次に、~/.local/etc/cron.daily
にあるスクリプトを実行するようにanacronを設定します ディレクトリ。
デフォルトでは、cronシステムの多くは、ログファイルのローテーションや証明書の更新などの重要な低レベルのタスクによく使用されるため、システム管理者のドメインと見なされます。この記事で説明する構成は、通常のユーザーが個人の自動化タスクを設定するために設計されています。
cronジョブを実行するようにanacronを構成するには、/.local/etc/anacrontab
に構成ファイルを作成します。 :
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1 0 cron.mine run-parts /home/tux/.local/etc/cron.daily/
このファイルは、すべての実行可能スクリプト(run-parts
)を実行するようにanacronに指示します。 )~/.local/etc/cron.daily
にあります 毎日(つまり、毎日)、0分の遅延があります。ログイン直後にコンピュータがすべての可能なタスクにぶつからないように、数分の遅延が使用される場合があります。ただし、これらの設定はテストに適しています。
cron.mine
valueは、プロセスの任意の名前です。私はそれをcron.mine
と呼んでいます ただし、cron.personal
と呼ぶこともできます またはpenguin
またはあなたが望むもの。
anacrontab
を確認します ファイルの構文:
$ anacron -T -t ~/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
沈黙は成功を意味します。
.profileへのanacronの追加
最後に、anacronがローカル構成で実行されることを確認する必要があります。 anacronはrootユーザーではなく通常のユーザーとして実行しているため、ローカル構成(anacrontab
)に転送する必要があります。 anacronに何をすべきかを指示するファイル、およびanacronが各ジョブが最後に実行されてから何日経過したかを追跡するのに役立つスプールディレクトリ:
anacron -fn -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
-fn
オプションはanacronに無視するように指示します タイムスタンプ。これは、何があってもcronジョブを実行するように強制していることを意味します。これはテスト専用です。
cronジョブのテスト
すべての設定が完了したので、ジョブをテストできます。再起動せずにこれを技術的にテストできますが、これが処理するように設計されているため、再起動するのが最も理にかなっています:中断された不規則なログインセッション。コンピュータを再起動してログインし、テストファイルを探します。
$ ls /tmp/hello
/tmp/hello
ファイルが存在すると仮定すると、サンプルスクリプトは正常に実行されました。 ~/.profile
からテストオプションを削除できるようになりました 、これを最終構成として残します:
anacron -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron
パーソナル自動化インフラストラクチャを構成しているので、コンピューターで管理するスクリプトを~/.local/etc/cron.daily
に配置できます。 ディレクトリを作成すると、スケジュールどおりに実行されます。
ジョブを実行する頻度はあなた次第です。サンプルスクリプトは1日1回実行されます。明らかに、それはコンピュータの電源がオンになっていて、特定の日に起きているかどうかによって異なります。コンピューターを金曜日に使用し、週末のために取っておいた場合、スクリプトは土曜日と日曜日には実行されません。ただし、anacronは少なくとも1日が経過したことを認識しているため、月曜日にスクリプトが実行されます。 ~/.local/etc
に、毎週、隔週、または毎月のディレクトリを追加できます。 さまざまな間隔をスケジュールします。
新しい間隔を追加するには:
- ディレクトリを
~/.local/etc
に追加します (たとえば、cron.weekly
。 -
~/.local/etc/anacrontab
に行を追加します 新しいディレクトリでスクリプトを実行します。週間隔の場合、構成は次のようになります。
7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/
(
0
を使用 値は、オプションで、スクリプトの開始を丁寧に遅らせるための数分です。 - スクリプトを
cron.weekly
に配置します ディレクトリ。
自動化されたライフスタイルへようこそ。そんな感じにはなりませんが、生産性が大幅に向上します。