LoginSignup
1
0

More than 5 years have passed since last update.

ディストリビューションによって処理を替える

Posted at

EC2で、ディストリビューションによってシェルスクリプトの処理を変えたい場合についてです。

/etc/os-releaseでディストリビューションは判定できます。
lsb-releaseを使おうと思ったんですが、EC2のAmazonLinuxやCentOSにはデフォルトでインストールされていないみたいです。

/etc/os-release(CentOS)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
/etc/system-release(AmazonLinux)
NAME="Amazon Linux AMI"
VERSION="2016.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2016.03"
PRETTY_NAME="Amazon Linux AMI 2016.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2016.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
/etc/system-release(Ubuntu)
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

このファイルの文字列をチェックすることで、処理を変えることができます。

RELEASE_FILE=/etc/os-release
if grep -e '^NAME="CentOS' $RELEASE_FILE >/dev/null; then
 CentOSの時の処理
elif grep -e '^NAME="Amazon' $RELEASE_FILE >/dev/null; then
 Amazon Linuxの時の処理
elif grep -e '^NAME="Ubuntu' $RELEASE_FILE >/dev/null; then
 Ubuntuの時の処理
else
 その他の処理
fi

もっといい方法があれば教えて下さいー

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0