EdgeRouter - 스크립트에서 운용 모드 명령어를 실행하는방법

download at 2017-10-16T21:15:21Z origin

Overview


이 문서는 스크립트에서 운용모드 명령어를 실행하는 방법에 대하여 서술합니다.

Example


예제 스크립트:

ubnt@ubnt:~$ cat myscript
#!/bin/bash
show version
show interfaces

스크립트가 실행가능하도록 하기 위해서 다음 명령어를 수행합니다:

ubnt@ubnt:~$ chmod +x myscript

스크립트를 실행하였을 때, 다음 에러를 출력합니다:

ubnt@ubnt:~$ ./myscript
./myscript: line 2: show: command not found
./myscript: line 3: show: command not found

왜 문제가 생길까요?

정답: 스크립트에서 필요한 환경변수가 없기 때문입니다. 이 문제를 해결하기 위해서는 필요한 환경변수를 포함하는 명령어 래퍼를 통해서 며령어를 실행해야 합니다 예를 들어:

ubnt@ubnt:~$ cat myscript
#!/bin/bash
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper
$run show version
$run show interfaces

이제 스크립트를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

ubnt@ubnt:~$ ./myscript
Version:      v1.2.0alpha2
Build ID:     4558456
Build on:     05/02/13 16:24
Copyright:    2012-2013 Ubiquiti Networks, Inc.
HW model:     EdgeRouter Lite 3-Port
HW S/N:       DC9FDB29DBEE
Uptime:       22:09:25 up 11 days,  1:25,  1 user,  load average: 0.08, 0.02, 0.01

Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                        S/L  Description
---------    ----------                        ---  -----------
eth0         192.168.1.1/24                    u/D  secure LAN
eth1         192.168.2.1/24                    u/D  public LAN
eth1.100     2.2.2.3/24                        u/D
eth2         1.1.1.2/24                        u/u  WAN
lo           127.0.0.1/8                       u/u

모든 디렉토리는 업그레이드 중에는 덮어쓰기가 이루어지기 때문에 필요한 스크립트는 /config 디렉토리 아래에 위치하도록 합니다.

mv myscript /config/scripts

 UBNT-stig &  UBNT-Jamie