Очень часто мы пользуемся выгрузкой на FTP-сервера через скрипты в Mikrotik. Удобно загружать бекапы или экспортные файлы на сервер, передавать файлы типа anything.auto.rsc на другие Микротики для автовыполнения. Иногда передача по фтп завешается неудачей, наша цель - отследить статус отправки. Типового механизма отслеживания корректно ли произошла отправка по фтп в RouterOS нет, но есть небольшая уловка, которой мы можем воспользоваться.
С помощью оператора :execute мы сможем выполнить скрипт и результат обработки записать в файл, проанализировав который можно сказать удачно ли произошла отправка или нет.
Сам скрипт:
admin, admin - логин и пароль.
Проанализировав вывод оператора и найдя в нем строчку "finished" - мы считаем что файл успешно передался.
Это мы и записываем в переменную ftpSTS (done) и пишем в лог. Дальше используем эту переменную по вашему усмотрению.
С помощью оператора :execute мы сможем выполнить скрипт и результат обработки записать в файл, проанализировав который можно сказать удачно ли произошла отправка или нет.
Сам скрипт:
:local logftp "ftp.log"192.168.88.254 - IP нашего сервера FTP,
:local cmd "/tool fetch mode=ftp upload=yes user=\"admin\" password=\"admin\" src-path=\"11.txt\" address=\"192.168.88.254\" dst-path=\"99.txt\""
:execute file=$logftp script=$cmd
# ждем 30 секунд. Это время можно изменить проанализировав время выгрузки вашего файла
:delay 30s
:local logres [/file get [find name="$logftp.txt"] contents]
:if ($logres~"finished") do={
:global ftpSTS "done"
/log warning "ftp upload success"
} else={:global ftpSTS "error"; /log error "ftp upload NOT success"}
admin, admin - логин и пароль.
Проанализировав вывод оператора и найдя в нем строчку "finished" - мы считаем что файл успешно передался.
![]() |
| стандартный вывод успешного завершения передачи по ftp. |




Спасибо тебе добрый человек. Долго искал как можно отловить в микротике состояние выполнения команд.
ОтветитьУдалитьКстати работает такая конструкция
ОтветитьУдалить:do {/tool fetch url="http://10.10.10.10:8080/info/certificate/RSA" keep-result=no; :global utm "good"} on-error={:global utm "bad"}
Мой опыт общения с доктором Годсент Яром был очень позитивным. Он всегда выполнял свои обещания, и я рада сообщить, что после многих лет жизни с вирусом генитального герпеса мой тест на него оказался отрицательным. Это повлияло на меня как в финансовом, так и в эмоциональном плане. Помощь доктора Годсента Яра принесла мне огромную радость. Вы можете найти больше информации на его сайте: http://bit.ly/2dBFYeW, посетить его страницу в Facebook: https://www.facebook.com/profile.php?id=100090745420235 или связаться с ним по электронной почте dryareherbalcurehome@gmail.com или по WhatsApp: +2348164653711, если вам нужна помощь с хроническим заболеванием.
ОтветитьУдалить