EdgeRouter - 스크립트에서 운용 모드 명령어를 실행하는방법¶
download at 2017-10-16T21:15:21Z origin
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