리눅스

ip변경하는 쉘 스크립트

정지홍 2024. 8. 8. 02:13
#! /bin/bash

# ./execute.sh 172.36.25.139 실행하면
# ifcfg-ens33.exam file 에 BOOTPROTO=static 으로 변경되고, 그 아래 라인에 IPADDR=${입력받은IP} 가 추가된 file 생성하기

# TODO
clear
# ------------------입력 받는 형식이 다른 경우 에러 메시지 출력-----------------
if [ ${#} -ne 1 ]; then 
	echo "usage :  ipAddress"
	exit 1
fi
# ------------------------------------------------------------------------------
# ---------------------혹시 모르니 맞는지 확인하기 위함.....---------------------
echo "entered ipAddr is ${1}"
echo "맞나요? 맞으면 yes입력. 아니면 아무거나 누르세요."

read ans

if [ $ans = "yes" ]; then
	echo "옳게 입력하였음: ${1}"
else
	echo "프로그램을 다시 실행하세요"
	exit 1
fi
# ----------------------------------------------------------------------------
# ---------------------------------처리--------------------------------------
echo " ${1} ipAddr로 변경하겠습니다. bootproto가 자동이나 수동인 경우 static으로 변경됨..."

# 우선 파일 경로 변수 저장함
myFile="/etc/sysconfig/network-scripts/ifcfg-ens33"

# sed에서 s/로 치환 명령 실행
# sed s/targetString/rstString <src> <dest>
# ^는 줄의 시작을 의미하며 .*은 IPADDR= 과 완전히 일치하고 뒤에 아무거나 와도 됨
# /뒤에는 치환한 문자열이며 처음에 입력받은 주소를 집어 넣어줌...
sudo sed -i "s/^BOOTPROTO=.*/BOOTPROTO=static/" $myFile
sudo sed -i "s/^IPADDR=.*/IPADDR=${1}/" $myFile


sudo systemctl restart network

echo "이 문장이 출력되면 정상적인 변경 완료가 아님....."