EdgeRouter - EdgeOS에 명령어 추가하기

download at 2017-10-16T21:13:42Z origin

Overview


EdgeOS에 간단한 명령어를 추가할 수 있습니다. 예를 들어, reset 명령어는 CLI 접근이 불가능 할 때 EdgeOS에서 수행하는 고수준 명령어 입니다.

Steps


이 예제에서는 콘솔을 리셋하는 명령어를 추가해보도록 하겠습니다.

  1. reset 명령어를 처음 실행하면 하나의 옵션만 존재합니다.
ubnt@RTR:~$ reset ?
openvpn
  1. 명령어를 추가는 루트 유저만 가능합니다. sudo 명령어는 루트 특권을 얻을 떄 사용합니다.

    ubnt@RTR:~$ sudo bash
    root@RTR:/home/ubnt#
    
  2. 루트 유저로 모든 운용 모드 템플릿을 탐색할 수 있습니다.

    root@RTR:/home/ubnt# cd /opt/vyatta/share/vyatta-op/templates
    root@RTR:/opt/vyatta/share/vyatta-op/templates# ls
    add            delete         ping6          reset          terminal
    clear          disconnect     reboot         restart        traceroute
    configure      generate       release        set            traceroute6
    connect        initial-setup  remove         show           undebug
    copy           no             rename         shutdown       update
    debug          ping           renew          telnet
    
  3. reset 하부 명령어를 만들고 reset 디렉토리로 이동합니다.

    root@RTR:/opt/vyatta/share/vyatta-op/templates# cd reset
    root@RTR:/opt/vyatta/share/vyatta-op/templates/reset# ls
    node.def  openvpn
    
  4. mkdir 명령어를 통해서 consoel 이름을 갖는 디렉토리를 생성합니다.

    root@RTR:/opt/vyatta/share/vyatta-op/templates/reset# mkdir console
    root@RTR:/opt/vyatta/share/vyatta-op/templates/reset# cd console
    
  5. 루트 계정을 이용하는 동안 cat 명령어를 사용하여 파일을 생성합니다. 파일명은 node.def 로 콘솔 디렉토리 내에 생성합니다. "help..."와 "run..." 을 아래와 같이 추가합니다. 모두 입력한 후에는 엔터를 입력하고 ctrl+c 를입력하여 파일 수정을 종료합니다.

    root@RTR:/opt/vyatta/share/vyatta-op/templates/reset/console# cat > node.def
    help: Reset the console
    run: /usr/bin/reset
    
  6. 루트계정을 종료하고 새로운 명령어를 실행합니다:

root@RTR:/opt/vyatta/share/vyatta-op/templates/reset/console# exit
exit
ubnt@RTR:~$ reset ?
console  openvpn
ubnt@RTR:~$ reset ?
Possible completions:
  console       Reset the console
  openvpn       Reset OpenVPN
ubnt@RTR:~$ reset console