記事一覧
基本的な書き方まとめ
Apacheを停止するシェルスクリプトの場合、実行したいコマンドは下の1行だけです。
# /etc/init.d/httpd stop
しかし、サーバを維持保守・運用するうえで、障害時の調査・解析のしやすさや他スクリプトへの汎用性も考え、今までの記事にあげてきた項目の対応をおこない、以下のようなシェルスクリプトを作成します。
記載例
$ cat stop_apache.sh
#!/bin/bas
インデント文字は統一しよう
if文やfor文、while文など分岐処理やループ処理には、インデント付けて読みやすいシェルスクリプトにします。
インデント文字は半角スペースを4文字や、TABを1文字と決めてスクリプト内は統一します。
筆者の好みは半角スペース4文字です。
記載例
$ cat stop_apache.sh
#!/bin/bash
#########################################
ログファイルを作ろう
シェルスクリプトは実行しても、何も記録が残りません。
目的の処理だけをシェルにするのではなく、シェルスクリプトの開始・終了、目的の処理を実行した情報をログファイルに記録します。
記載方法
以下のようにログファイルにメッセージを出力します。
LOGFILE=log_file.log
echo script start >> $LOGFILE
echo Apache stoped >> $LOGFI
変数は上部にまとめよう
スクリプトの中で使う変数は、ヘッダーの直後にまとめて記載します。
スクリプトの中で更新する必要があるものは、必要なポイントで定義します。
記載方法
以下は、筆者がよく使う変数です。
HOSTNAME=`uname -n`
・・・ホスト名
BASEDIR="$(cd $(dirname $0) && pwd)"
・・・本スクリプトが配置されているディレクトリパス
BASENAME=${
ログ出力を統一しよう
ログにはスクリプトを実行した時間と処理内容を記録します。
複数のスクリプトが1つのログファイルに出力する場合でも、どのスクリプトで出力されたわかるようにスクリプト名をログに記録します。
複数のサーバが1つのログファイルに出力する場合でも、どのサーバで出力されたわかるようにホスト名をログに記録します。
情報なのか、エラーなのかを識別するフラグを付けて、ログ概要が一目でわかるようにします。
記録方法
インフラエンジニアが仕事で使えるシェルスクリプトの書き方
マガジンの目的
Linuxサーバのインフラエンジニアが、仕事で作るシェルスクリプト(bash)の書き方をまとめました。
サーバの構築設定をするうえで、シェルスクリプトを作る機会は数多く発生します。
サーバの維持運用や保守をおこなううえで、シェルスクリプトに盛り込んだ方が良いポイントをまとめましたので参考にして下さい。
基本的な書き方
下のApacheを停止させるスクリプト「stop_apache