Что это такое?
Это скрипт, представляющий собой тело и параметры макрокоманды.
Зачем это нужно?
Чтобы макрокоманда делала что-нибудь полезное.
Как это настроить?
Скрипт исполняется в командной оболочке ОС Linux (bash) при вызове данной макрокоманды. Может содержать команды ОС Linux, а также вызов командной оболочки nsgsh в пакетном режиме. Может содержать до 9 параметров $1
, $2
, ..., $9
, вводимых пользователем при отправке SMS. Например, следующая макрокоманда
macros
: s
: : script = "ifconfig eth$1"
при отправке SMS с текстом "s 0", "s 1" и т.п. будет выводить состояние интерфейсов eth0
, eth1
и т.п. соответственно.
Что делать, если это не работает?
- Смотреть журнал обрабочика SMS.
- В случае использования nsgsh в скриптах — проверить права доступа, требуемые для выполнения указанных действий. Убедиться в отсутствии в этот момент конкурирующих сессий управления устройством (в т.ч. вызова nsgsh из других скриптов).
По возможности вызывать nsgsh c ключом --readonly (-r).
Если обойтись командами, доступными в режиме "только для чтения", невозможно, то вызывать nsgsh с ключом --force (-f).
В крайнем случае определить, какой из сессий следует отдавать приоритет в этом случае, и перед её запуском снять все остальные сессии командой nsgsh -q .system.sessions.close=admin
.
- По возможности избегать использования nsgsh в скриптах. В тех случаях, когда она служит для вызова утилит, выполняемых в контексте bash, предпочтительно использовать более прямой вызов — непосредственно командами bash, например,
reboot
вместо nsgsh -q .system.reboot=yes
.