четверг, 22 декабря 2016 г.

Проверка статуса выгрузки на FTP в Mikrotik.

  Очень часто мы пользуемся выгрузкой на FTP-сервера через скрипты в Mikrotik. Удобно загружать бекапы или экспортные файлы на сервер, передавать файлы типа anything.auto.rsc на другие Микротики для автовыполнения. Иногда передача по фтп завешается неудачей, наша цель - отследить статус отправки. Типового механизма отслеживания корректно ли произошла отправка по фтп в RouterOS нет, но есть небольшая уловка, которой мы можем воспользоваться.
  С помощью оператора :execute мы сможем выполнить скрипт и результат обработки записать в файл, проанализировав который можно сказать удачно ли произошла отправка или нет.
  Сам скрипт:
:local logftp "ftp.log"
: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"}
  192.168.88.254 - IP нашего сервера FTP,
  admin, admin - логин и пароль.
  Проанализировав вывод оператора и найдя в нем строчку "finished" - мы считаем что файл успешно передался.

стандартный вывод успешного завершения передачи по ftp.
  Это мы и записываем в переменную ftpSTS (done) и пишем в лог. Дальше используем эту переменную по вашему усмотрению.


Используемый материал:

Подписаться на новые статьи.

3 комментария:

  1. Спасибо тебе добрый человек. Долго искал как можно отловить в микротике состояние выполнения команд.

    ОтветитьУдалить
  2. Кстати работает такая конструкция
    :do {/tool fetch url="http://10.10.10.10:8080/info/certificate/RSA" keep-result=no; :global utm "good"} on-error={:global utm "bad"}

    ОтветитьУдалить
  3. Мой опыт общения с доктором Годсент Яром был очень позитивным. Он всегда выполнял свои обещания, и я рада сообщить, что после многих лет жизни с вирусом генитального герпеса мой тест на него оказался отрицательным. Это повлияло на меня как в финансовом, так и в эмоциональном плане. Помощь доктора Годсента Яра принесла мне огромную радость. Вы можете найти больше информации на его сайте: http://bit.ly/2dBFYeW, посетить его страницу в Facebook: https://www.facebook.com/profile.php?id=100090745420235 или связаться с ним по электронной почте dryareherbalcurehome@gmail.com или по WhatsApp: +2348164653711, если вам нужна помощь с хроническим заболеванием.

    ОтветитьУдалить