Last Updated on 2013年4月3日 by かんりにん
ホスト名を標準入力にて引数として追加し、ホストグループを判定する勉強用スクリプト。
ホスト名の先頭にweb、db、app、mailがあった場合はホストグループとサーバールートを出力、
ホスト名が対象外、あるいは引数が無い場合は"該当しない"旨のメッセージを出力。
- スクリプト
test.sh#!/bin/sh HOST=$1 TARGETDATE=`date -d '1days ago' +%Y%m%d`; TMPDIR='/home/backup/tmp/logs' SERVERROOT='/home/backup/web/logs' case $1 in web*) echo "hostgroup is apache web servers" SERVERROOT='/usr/local/apache' ;; db*) echo "hostgroup is mysql db servers" SERVERROOT='/usr/local/mysql' ;; app) echo "hostgroup is java application servers" SERVERROOT='/usr/local/tomcat' ;; mail*) echo "hostgroup is postfix mail servers" SERVERROOT='/usr/local/postfix' ;; *) echo "This host doesn't belong to any group or no stdin. " ;; esac echo "SERVERROOT=$SERVERROOT" exit 0
- 実行例
標準入力をつけた場合は以下の通りとなる。$ sh test.sh web001 hostgroup is apache web servers SERVERROOT=/usr/local/apache
標準入力が対象外のホスト、あるいは入力が無い場合は以下の通りとなる。
$ sh test.sh This host doesn't belong to any group. BACKUPDIR=none
- 備考
最後のecho "SERVERROOT=$SERVERROOT"は条件式毎にいれてもよい。