Описание проблемы
assistant-task сконфигурирован следующим образом (для примера настроено на срабатывание раз в минуту):
<HOSTNAME>display current-configuration | s assist
assistant task bkp_cfg
if-match timer cron * */1 * * * * *
perform 1 batch-file flash:/bkpcfg.bat
Содержание batch-файла:
<HOSTNAME>more bkpcfg.bat
quit
tftp 192.168.1.1 put config.cfg Huawei/test/host01.cfg
Просмотр истории срабатывания задачи:
<HOSTNAME>display assistant task history
--------------------------------------------------------------------------------
Assistant task name: bkp_cfg
Action type : Batch fileflash:/bkpcfg.bat
Start time : 2019-08-23 07:53
End time : 2019-08-23 07:53
State : Finished
Action type : Batch fileflash:/bkpcfg.bat
Start time : 2019-08-23 07:53
End time : 2019-08-23 07:53
State : Finished
--------------------------------------------------------------------------------
При запуске batch файла вручную, все работает нормально, файл загружается на tftp сервер:
[HOSTNAME]execute bkpcfg.bat
[HOSTNAME]quit
< HOSTNAME >tftp 192.168.1.1 put config.cfg Huawei/test/host01.cfg
Info: Transfer file in binary mode.
Uploading the file to the remote TFTP server. Please wait...
100%
TFTP: Uploading the file successfully.
8476 bytes send in 1 second.
Information: The script file has been executed completely
Success: 2 item(s) Failure: 0 item(s)
<HOSTNAME>
Немного теории
Assistant task - это команда, выполняемая на устройстве для реализации автоматического обслуживания и управления. После создания задачи (task) и привязки ее к пакету обрабатываемых файлов устройство выполняет операции или конфигурации в автоматическом режиме. Команду в основном используют для запланированного обновления или настройки системы.
Ниже приведена ссылка на подробное описание команды и параметров, которые необходимо задать для ее корректной отработки.
Отмечу, что ссылка предоставлена для линейки маршрутизаторов AR2500 версии прошивки V200R009.
Анализ проблемы
Таймер выполнения для срабатывания 1 раз в минуту согласно документации:
сконфигурирован корректно:
if-match timer cron * */1 * * * * *
Остается проветить синтаксис команды
perform 1 batch-file flash:/bkpcfg.bat
В синтаксисе все также корректно. И собственно содержание файла bkpcfg.bat. Обращаемся повторно к файлу:
quit
tftp 192.168.1.1 put config.cfg Huawei/test/host01.cfg
Данный файл заполняется в любом текстовом редакторе и сохраняется с расширением .bat. Как известно, команда quit позволяет выйти только из текущего уровня конфигурирувания, она не позволяет перейти сразу в user-view режим (что требуется для выполнения команды perform). Поэтому есть рекомендация использовать команду return, которая переводит в user-view из любого режима. Далее, указывая просто название файла для копирования config.cfg устройство в автоматическом режиме не сможет определить его местоположение и поэтому необходимо указывать так:
tftp 192.168.1.1 put flash:/config.cfg Huawei/test/host01.cfg
И для корректного разрыва соединения после окончания передачи выполнить команду bye. В итоге, записи в файле должны быть следующими:
return
tftp 192.168.1.1 put flash:/config.cfg Huawei/test/host01.cfg
bye
Именно такие записи в файле позволили решить проблему автоматического копирования файла конфигурации.
Корневая причина
В файле bkpcfg.bat были некорректно сконфигурированы команды для выполнения автоматической задачи.
Решение проблемы
Привести файл bkpcfg.bat к такому содержанию:
return
tftp 192.168.1.1 put flash:/config.cfg Huawei/test/host01.cfg
bye