サーバのIPとホスト名の初期設定が面倒で思いついたスクリプト。
超適当で汚いですが、一応作ってみたので載せてみます。
# cat startup.sh #!/bin/bash echo '初期設定を開始します。' echo '' while : do echo 'ホスト名を入力してください。' read host case "$host" in [a-z]* | [A-Z]* | [0-9]* ) echo "OK" break ;; exit) exit 1 ;; *) echo "無効な入力です。" ;; esac done while : do echo 'IPアドレスを入力してください' read IP case "$IP" in 10.0.*.*) echo "OK" break ;; exit) exit 1 ;; * ) echo "無効な入力です。" ;; esac done echo "これでよいですか?(y/n)" echo "ホスト名" echo $host echo "IPアドレス" echo $IP read answer case "$answer" in y) ;; n) echo "終了します" exit 1 ;; *) echo "終了します" exit 1 ;; esac #処理が開始されます。 cp -n /etc/sysconfig/network /root/network.org cp -n /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ifcfg-eth0.org # MACアドレスを更新するため、70-persistent-net.rulesファイルを移動します。 再起動後に新たにファイルが作成されます。 mv -n /etc/udev/rules.d/70-persistent-net.rules /root/70-persistent-net.rules.org sed -i -e s/templete.hdserver/$host/g /etc/sysconfig/network sed -i -e s/10.0.0.2/$IP/g /etc/sysconfig/network-scripts/ifcfg-eth0 # ifconfigから現在のMACアドレスを抜き出して、ifcfg-eth0ファイルを書き換えます。 HWADDR=`ifconfig -a |grep -i '[0-9A-F]\{2\}\(:[0-9A-F]\{2\}\)\{5\}' |awk '{print$5}'` sed -i -e s/'[0-9A-F]\{2\}\(:[0-9A-F]\{2\}\)\{5\}'/$HWADDR/g /etc/sysconfig/network-scripts/ifcfg-eth0 if [ $? = 0 ]; then echo "Success!" echo "再起動が必要です。今すぐ再起動を行いますか。" read answer2 case "$answer2" in y | yes | YES) reboot ;; n | no | NO) echo "終了します" exit 1 ;; esac else echo "Error. Processing failed." exit 1 fi exit 0
ちなみに/etc/sysconfig/networkと
/etc/sysconfig/network-scripts/ifcfg-eth0の中身は以下の箇所を変更済みです。
# cat /etc/sysconfig/network HOSTNAME=host # cat /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=IP