리눅스
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 "이 문장이 출력되면 정상적인 변경 완료가 아님....."
