리눅스 IP를 변수로
2014. 2. 4. 23:27 |
리눅스
리눅스 쉘 스크립트에서 IP를 변수로 받아와야 하는 경우
일반적으로 hostname 커맨드를 활용하면 짧고 편리하다.
※ 이 글에서는 테스트를 위해 일부러 NIC를 2개 생성했기 때문에 위와 같이 IP가 2개 나왔고, 일반적인 경우 1개만 나올 것이다.
그런데 hostname 커맨드로는 loopback device의 IP를 확인할 수 없다. 127.0.0.1이야 그렇다 치더라도 L4를 DSR 구조로 사용하는 경우 lo:0 등의 IP도 확인이 필요할 것이다.
따라서 ifconfig 또는 ip 커맨드로 가공을 한번 해보자.
위 예제는 ifconfig와 grep, awk, cut 등을 활용한 것이다.
아래 예제는 ip 커맨드에 cut 대신 정규표현식을 조합했다. 좀 더 정교한 느낌이 든다.
사실 이 글을 작성하게 된 계기는 L4를 DSR 구조로 사용할 때 loopback IP를 가지고 뭔가를 하려 했기 때문이다. 최종적으로 나는 아래와 같은 구조로 사용하고 있다.
echo $vip 부분은 예제로 적어본 것이고, 저 자리에 내가 vip를 가지고 하고싶은 작업을 진행하고 있다.
일반적으로 hostname 커맨드를 활용하면 짧고 편리하다.
[root@CentOS ~]# hostname -I
192.168.0.28 192.168.0.40
[root@CentOS ~]#
[root@CentOS ~]# ips=`hostname -I`
[root@CentOS ~]#
[root@CentOS ~]# echo $ips
192.168.0.28 192.168.0.40
192.168.0.28 192.168.0.40
[root@CentOS ~]#
[root@CentOS ~]# ips=`hostname -I`
[root@CentOS ~]#
[root@CentOS ~]# echo $ips
192.168.0.28 192.168.0.40
※ 이 글에서는 테스트를 위해 일부러 NIC를 2개 생성했기 때문에 위와 같이 IP가 2개 나왔고, 일반적인 경우 1개만 나올 것이다.
그런데 hostname 커맨드로는 loopback device의 IP를 확인할 수 없다. 127.0.0.1이야 그렇다 치더라도 L4를 DSR 구조로 사용하는 경우 lo:0 등의 IP도 확인이 필요할 것이다.
따라서 ifconfig 또는 ip 커맨드로 가공을 한번 해보자.
[root@CentOS ~]# ifconfig | grep -w inet | awk '{ print $2 }' | cut -c '6-'
192.168.0.28
192.168.0.40
127.0.0.1
192.168.0.100
192.168.0.28
192.168.0.40
127.0.0.1
192.168.0.100
위 예제는 ifconfig와 grep, awk, cut 등을 활용한 것이다.
아래 예제는 ip 커맨드에 cut 대신 정규표현식을 조합했다. 좀 더 정교한 느낌이 든다.
[root@CentOS ~]# ip addr | grep -w inet | awk '{ print $2 }' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
127.0.0.1
192.168.0.100
192.168.0.28
192.168.0.40
127.0.0.1
192.168.0.100
192.168.0.28
192.168.0.40
사실 이 글을 작성하게 된 계기는 L4를 DSR 구조로 사용할 때 loopback IP를 가지고 뭔가를 하려 했기 때문이다. 최종적으로 나는 아래와 같은 구조로 사용하고 있다.
vips=`ip addr show lo | grep -w inet | grep -v 'inet 127' | awk '{ print $2 }' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'`
for vip in $vips
do
echo $vip
done
for vip in $vips
do
echo $vip
done
echo $vip 부분은 예제로 적어본 것이고, 저 자리에 내가 vip를 가지고 하고싶은 작업을 진행하고 있다.
'리눅스' 카테고리의 다른 글
리눅스 SSL 인증서 만료일 확인 (3) | 2014.05.28 |
---|---|
리눅스 SSL 사설 인증서 생성하기 (1) | 2014.05.22 |
리눅스 SSH RSA 비대칭키로 패스워드 없이 접속 (4) | 2014.05.20 |
리눅스 본딩 구성 (4) | 2014.02.18 |
우분투 서비스 컨트롤 방법 (7) | 2014.01.01 |
우분투 apt 미러 서버 구성 (2) | 2013.12.18 |
리눅스 ipv6 끄기 (0) | 2013.12.10 |
우분투 apt-get Repositoy 변경 (8) | 2013.12.05 |
최근에 달린 댓글 최근에 달린 댓글