Linuxで自動化を目指すこと
久しぶりの理系的な話題。今回は自分の仕事にも関係する話で、Linuxにおける自動化(スクリプト)についてである。
おそらく、エンジニアにとっては誰しも関係する話題だろう。もちろん、私にも関係することで、その辺の苦労話についても書いていこうと思う。
シェルスクリプトで処理を自動化
Linuxには人間(ターミナル)の命令を処理する「カーネル」という中枢が存在する。
このカーネルは、人間(ターミナル)からの命令を直接理解することができない。そこで、ターミナルからの命令をカーネルが理解できる言語に変換する必要があるのだが、その役割を果たすのが「シェル」である。
また「スクリプト」とは、人間(ターミナル)の命令を簡易的なプログラムとして書き上げたものである。これを使うことで、ターミナルで1回1回の命令としてカーネルに送信していたものが、一気に最後まで実行できるようになる。
Linuxのスクリプトなので「シェルスクリプト」と呼ばれる。シェルスクリプトを実行することで、一連の想定した処理を人間の手を介さずに行うことを、自動化と呼んでいる。
もともと、スクリプトは「台本」や「原稿」などの意味があるので、そのイメージの通りでもある。
自動化のメリット
自動化のメリットはいくつかあるが、人間(ターミナル)で行うべき手数が減ることが一番だろう。
毎日のルーチンワークであったとしても、体調次第でミスをやらかすかもしれないのが「人間」である。そんな人間の代わりに「コンピューター」が作業を代行するのだから、これほど確実なものはない。
また、シェルスクリプトの実行までも時刻指定しておけば、人間がコンピューターから離れている間に作業が勝手に完了してしまう。
人間には睡眠時間が必要だが、コンピューターには必要ないので、効率的に仕事を進めることができる。これも人間にとって都合の良いことである。
就寝中でなくても、自動化できる作業をコンピューターに預けてしまうことで、自分は別の仕事に取り組むこともできる。まるで、分身の術でも使ったかのような感覚である。
仕事を自動化するという命題
前々に自分の仕事と関わることだと書いた。
Linuxでの作業がメインだからということもあるが、仕事上で大量のファイルを一気に扱う作業が頻繁に発生するからというのが一番の理由である。
品質評価を行うにあたり、様々なテストケースを適用して、一気通貫でOKかNGかを見極める。そのために自動化をいう仕組みが必要だった。
計算実行の自動化に留まらず、結果取得(評価)までも自動化する必要があるので、個人的には初めての試みではあった。
この辺は自分がと言うよりは、協同者がベースを用意してくれたので、個人的な成果とは言い難いが、徐々に自分のものにできるように努力している。
ちなみに、LinuxだけでなくWindowsに関しても自動化を進めている。こちらはシェルスクリプトではなく、バッチスクリプト(バッチ処理)というまた別の言語になるが、概念的には同じことである。
おわりに
今回はコンピューターでの自動化について書いた。自動化のメリットから、自分の仕事に関する自動化についても説明した。
もともと、コンピューターに関してはそこまで詳しいわけでもなく、苦手意識まであったくらいだ。そんな人間がシステムエンジニアのような仕事を鋭意を持って進めているのだから、人生は何があるかわからない。
自動化はこれからもだいじな技術のひとつなので、ぜひマスターして、仕事に貢献できるようにしたい。
-------------------------
最後まで読んでいただき、ありがとうございました。実際は非定期ですが、毎日更新する気持ちで取り組んでいます。あなたの人生の新たな1ページに添えるように頑張ります。何卒よろしくお願いいたします。
-------------------------
⭐︎⭐︎⭐︎ 谷口シンのプロフィール ⭐︎⭐︎⭐︎
⭐︎⭐︎⭐︎ ブログのロードマップ ⭐︎⭐︎⭐︎