Jenkinsをcronの代わりとして使おう

目次

導入

Linuxで定期的に実行したい処理がある場合、cronというものが良く使われます。

cronでは、あらかじめ指定しておいたスクリプトやソフトウェアを実行することが可能です。

しかし、cronの設定はCLIで行う必要があり、設定をする場合は毎回そのサーバへログインして実行する必要があり面倒です。

そこで、今回はcronの代わりとしてJenkinsをお勧めしてみたいと思います。

Jenkinsとは

Jenkinsは、Javaで開発されたインテグレーションツールです。Webアプリケーションとして提供されているため、ブラウザからアクセスして使います。

インテグレーションツールとは、アプリケーションの開発の場などで使われるもので、アプリケーションのテストを実行したり、デプロイ等の公開をしたりするためのツールです。

このようなもののため、Jenkinsはかなり多機能です。

そのため、このJenkinsの機能の中には、定期的に実行するための機能があります。

また、スクリプトを実行する機能もあるため、cronと同じようにスクリプトを実行するということができます。

cronからJenkinsへ

私は、これらの機能を使ってcronと同じように、Jenkinsを使って定期的に処理を実行しています。

normal_72d281a8-1696-4230-b405-dacbeaade04e.png

normal_ae8348fb-d8b5-452a-bf69-8c8d62211394.png

Jenkinsの利点としては、ブラウザからアクセスして、操作ができるという点にあります。また、ログもちゃんと残っているため、実行に失敗した際に何が原因だったのか調べるのが容易です。

ブラウザからアクセスして操作ができるというのは、想像以上に便利です。スクリプトの登録や変更をする際に毎回サーバにログインして、色々と行うのに比べれば簡単にスクリプトを登録、変更ができます。

Jenkinsの維持コストがかかってしまいますが、たくさんのcronで実行したい処理がある場合は、cronよりもJenkinsのほうが維持コストが低いのではないかと思うので、検討の価値はあります。

さいごに

Jenkinsはインテグレーションで使われるツールですが、多機能なツールであるため、他の使い方も可能です。

ここではcronを置き換えることを目指した使い方をしていますが、他にもIFTTTのように、複数の処理をつなげて実行するということも可能です。これはJenkinsのパイプラインという機能を使います。

Jenkinsは、無限大の可能性を秘めています。今後もJenkinsを使って色々な自動化をしていきたいです。