run

Команда run позволяет выполнять команды операционной системы из CLI.

 

Синтаксис                     run {command}

command                        команда, предназначенная для выполнения командным интерпретатором. Для шлюза используется командный интерпретатор sh, который запускается в директории Продукта под тем же пользователем, под которым запущена консоль.

 

Значение по умолчанию                    Значение по умолчанию отсутствует

.

Режимы команды                               privileged EXEC

 

Рекомендации по использованию 

Данная команда предназначена для выполнения команд операционной системы, а также для запуска утилит Продукта, описанных в документе «Специализированные команды». Вывод команды передается на экран без изменения.

Прервать выполнение внешнего приложения можно комбинацией клавиш
Ctrl-Shift-6. Если по каким-либо причинам внешняя программа не отреагировала на прерывание, можно нажать CTRL-|. Эта команда посылает SIGKILL – неперехватываемый сигнал, по которому выполнение внешней программы прекращается.

В случае ввода команды с заведомо ошибочным синтаксисом, например, если присутствуют незакрытые кавычки, выдается сообщение об ошибке: % Shell  command  is  not  supported.

Проверка синтаксиса не исчерпывающая. Возможен ввод команд, синтаксис которых будет отвергнут командным процессором системы.

Для маршрутизаторов ESR-ST аналогичное сообщение может быть выдано при несоблюдении специальных ограничений на команду. Подробнее см. ниже.

В аргументах команды можно использовать префиксы, аналогичные используемым в командах работы с файлами:

·       Допустимо использовать префикс только в начале аргумента.

·       Допустимо использовать префикс внутри двойных кавычек ("), при условии, что префикс будет написан сразу после отрывающей кавычки.

·       Если используются одинарные кавычки ('), префикс не будет преобразовываться в путь к файлу.

Примеры (кроме маршрутизаторов ESR-ST) 

Подстановка отсутствует:

sterragate#run echo 'file:my_file.txt' _file:my_file.txt " my_file.txt"

file:my_file.txt _file:my_file.txt  my_file.txt

 

Подстановка присутствует:

sterragate#run echo file: file:some_file.txt "file:some_file.txt"

/var/cspvpn/ /var/cspvpn/some_file.txt /var/cspvpn/some_file.txt           

Также можно использовать данные префиксы при временном присваивании переменных среды. Например:

sterragate#run SOME_VAR=file:some_file.txt env | grep SOME_VAR

SOME_VAR=/var/cspvpn/some_file.txt

sterragate#run SOME_VAR="file:some_file.txt" env | grep SOME_VAR

SOME_VAR=/var/cspvpn/some_file.txt

sterragate#run SOME_VAR=" file:some_file.txt" env | grep SOME_VAR

SOME_VAR= file:some_file.txt

sterragate#run SOME_VAR='file:some_file.txt' env | grep SOME_VAR

SOME_VAR=file:some_file.txt 

Примеры (для маршрутизаторов ESR-ST) 

Подстановка отсутствует:

esr-100#run cert_mgr import -f 'flash:some_file.txt'

flash:some_file.txt couldn't open file

esr-100#run cert_mgr import -f " flash:some_file.txt"

 flash:some_file.txt couldn't open file

Подстановка присутствует:

esr-100#run cert_mgr import -f flash:some_file.txt

/var/cspvpn/some_file.txt couldn't open file

esr-100#run cert_mgr import -f "flash:some_file.txt"

/var/cspvpn/some_file.txt couldn't open file           

Следует соблюдать аккуратность при использовании специальных возможностей командного интерпретатора. Такие как:

·       Перенаправление ввода из файла и вывода в файл (< > << >> и т.п.).

·       Перенаправление вывода в другую команду, команды проверки условий и т.п. (кроме маршрутизаторов ESR-ST).

В некоторых случаях такие команды будут отвергнуты или выполнятся с ошибкой.

·       Может не работать подстановка пути к файлу из префикса.

·       Рекомендуется всегда ставить пробелы до и после специальных модификаторов. Например:

Рекомендуется. В результате будет создан файл с именем some_file.txt

esr-100#run cert_mgr show > flash:some_file.txt

Не рекомендуется. В результате будет создан файл с именем flash:some_file.txt

esr-100#run cert_mgr show>flash:some_file.txt  

  

Для маршрутизаторов ESR-ST присутствует ряд ограничений:

·       Допустимо запускать только исполняемые файлы, лежащие в директории /opt/VPNagent/bin или /opt/UPAgent/bin. При этом можно писать как просто имя файла,  так и писать полный путь, например:

run cert_mgr show

run /opt/VPNagent/bin/cert_mgr show

·       Текущая директория при выполнении: /var/cspvpn

·       Нельзя запускать исполняемые файлы из поддиректорий, например

run subdir/qqq

run /opt/VPNagent/bin/subdir/qqq

·       Нельзя использовать .., например:

run /opt/VPNagent/bin/../../../bin/echo

·       Нельзя использовать принудительный запуск скрипта:

run . some_script

·       Нельзя использовать специальные символы:

; & | ` $ ( ) ! [ ] { }

Примечание: их можно использовать после обратного слэша или в кавычках. Например:

\; "|" '!'

·       Не допускается временное присваивание переменных среды. Например:

run SOME_VAR=1 cert_mgr show

·       Если сделана попытка выполнить запрещенную команду, будет выдано сообщение об ошибке:

% Shell  command  is  not  supported 

 

Команда do  run позволяет выполнять команды командного интерпретатора операционной системы из конфигурационного режима.

 

Отличие данной команды от подобной команды Cisco  IOS 

Команда run отсутствует у Cisco.

 

Пример 

Приведенный ниже пример содержит информацию, которая выводится при выполнении команды run /sbin/ifconfig 

Router#run /sbin/ifconfig

 

eth0      Link encap:Ethernet  HWaddr 00:0E:0C:6F:0F:E6

          inet addr:192.168.16.2  Bcast:192.168.16.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:34 errors:0 dropped:0 overruns:0 frame:0

          TX packets:39 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2226 (2.1 KiB)  TX bytes:2539 (2.4 KiB)

          Base address:0xcc00 Memory:c0100000-c0120000

 

eth1      Link encap:Ethernet  HWaddr 98:00:54:76:10:33

          inet addr:192.168.17.133  Bcast:192.168.17.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:1239 errors:0 dropped:0 overruns:0 frame:0

          TX packets:134 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:131023 (127.9 KiB)  TX bytes:11978 (11.6 KiB)

          Base address:0xc800 Memory:c0120000-c0140000

 

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:27 errors:0 dropped:0 overruns:0 frame:0

          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:2323 (2.2 KiB)  TX bytes:2323 (2.2 KiB)