今回も1行ずつ内容を理解しながら、テキストエディタを使って例のシェルスクリプトを作成してください。作成して保存したら、実行してみましょう。なお、このシェルスクリプトでは、アクセスしてきた地域を調べるために「whois」コマンドを利用しています。Ubuntuでは、このコマンドを含むパッケージがインストールされていません。次のようにインストールします。
1 2 |
$ sudo apt update $ sudo apt -y install whois |
リモートからログインしたり、リモートからのログインが拒絶されるまで失敗したりしてみてください。この状態で、シェルスクリプトを実行します。
このシェルスクリプトは、管理者(rootユーザー)権限で実行します。次のようにコマンドを発行してください。
1 2 |
$ sudo -s # ./sshlogin_notify.sh |
少し待つと、LINEに図2のメッセージが通知されます。上がログインの通知メッセージ、下が不正アクセスの通知メッセージです。
シェルスクリプトの実行が確認できたら、定期ジョブ実行デーモン「crond」を使って、1分ごとに動かしておくとよいでしょう。crondの使い方については、第5回を参照してください。
数回にわたって、書き方を解説しながら、実用的なシェルスクリプトを紹介しました。初回に「自分が使えればよいので、知っているコマンドを組み合わせるだけで構いません。無駄が多かったり、不思議な処理になっていたりしても正しく動けば問題ありません。とりあえず、完成させることが重要です。」と述べたように、まずは完成させることを目的とすべきです。ある程度書けるようになってきてから、スクリプトの読みやすさ、拡張性やメンテナンス性を考えていくとよいでしょう。
自分用にちょっとした処理をプログラムとして手軽に書けることは、ITの現場における大きな武器になるでしょう。
シェルスクリプトマガジン編集(あ)