Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
mikrotik:rb3011uias:routeros:system:scripts:variables_initialization [2020/10/10 13:54] Николай Солошин |
mikrotik:rb3011uias:routeros:system:scripts:variables_initialization [2022/02/12 11:40] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Инициализация глобальных переменных и SMS ====== | ====== Инициализация глобальных переменных и SMS ====== | ||
| - | Самый важный, | + | Самый важный, |
| + | |||
| + | Им инициализируются: | ||
| + | |||
| + | - глобальные переменные; | ||
| + | - глобальные функции; | ||
| + | - прием и отправка SMS; | ||
| + | - воспроизведение музыки! :-D | ||
| ===== Комментарии к коду ===== | ===== Комментарии к коду ===== | ||
| - | Используется для тестирования. Если его расскомментировать, | + | Используется для тестирования. Если его раскомментировать, |
| < | < | ||
| Строка 18: | Строка 25: | ||
| ==== Настройки скрипта ==== | ==== Настройки скрипта ==== | ||
| - | Настройки для работы SMS. Можно указать вручную, а можно | + | Настройки для работы SMS. Предварительно, конечно, [[mikrotik: |
| < | < | ||
| Строка 142: | Строка 149: | ||
| * SMS не поддерживает кириллицу. | * SMS не поддерживает кириллицу. | ||
| - | * Для передачи кириллицы в Email текст нужно или импортировать с текстом скрипта или набирать непосредственно из редактора кода RouterOS (подробнее в статье о фэйловере). | + | * Для передачи кириллицы в Email текст нужно или импортировать с текстом скрипта или набирать непосредственно из редактора кода RouterOS (подробнее в статье о [[mikrotik: |
| ==== Функция проверки состояния каналов ==== | ==== Функция проверки состояния каналов ==== | ||
| Строка 198: | Строка 205: | ||
| Вывод предыдущей функции может быть передан этой функции для сохранения результатов проверки на диске устройства. | Вывод предыдущей функции может быть передан этой функции для сохранения результатов проверки на диске устройства. | ||
| - | {{ : | + | {{: |
| - | Пример лог-файла. | + | :!: Для работы требуется политика ftp! |
| - | + | ||
| - | < | + | |
| - | In-MTS-0;; | + | |
| - | In-MTS-0;; | + | |
| - | In-MTS-0;; | + | |
| - | In-MTS-0;; | + | |
| - | In-MTS-0;; | + | |
| - | + | ||
| - | //Для работы требуется политика ftp!// | + | |
| < | < | ||
| Строка 261: | Строка 259: | ||
| }</ | }</ | ||
| - | :if ( [ :typeof $runLogCount ] = "nothing" ) do={ :set runLogCount [ :toarray "" | + | Если переменная с указанием текущего количества запусков имеет тип '' |
| - | | + | < |
| + | |||
| + | Накручиваем счетчик количества запуска функции. Если он больше '' | ||
| + | |||
| + | < | ||
| :set ( $runLogCount -> " | :set ( $runLogCount -> " | ||
| :set ( $logFileNum -> " | :set ( $logFileNum -> " | ||
| Строка 275: | Строка 277: | ||
| :set ( $runLogCount -> " | :set ( $runLogCount -> " | ||
| } | } | ||
| - | } | + | }</ |
| + | |||
| + | Проверяем частоту создания нового файла (ежедневно или ежемесячно) и пишем в переменную название текущего файла. Если переменная '' | ||
| - | | + | < |
| :set fileName ( $outInt . " | :set fileName ( $outInt . " | ||
| ( $monthToNum -> [:pick $dateToPick 0 3] ) . " | ( $monthToNum -> [:pick $dateToPick 0 3] ) . " | ||
| Строка 289: | Строка 293: | ||
| :log error (" | :log error (" | ||
| :error " | :error " | ||
| - | } | + | }</ |
| - | :if ( $receivedPing < $stableConnectFrom ) do={ :set warnLevel " | + | Проверяем насколько удачным было тестирование канала, |
| - | | + | < |
| + | |||
| + | Читаем из файла данные, | ||
| + | |||
| + | < | ||
| :do { :set contentsFile [ get " | :do { :set contentsFile [ get " | ||
| /system routerboard print file=" | /system routerboard print file=" | ||
| Строка 303: | Строка 311: | ||
| contents=" | contents=" | ||
| } | } | ||
| - | } | + | }</ |
| - | # Example | + | === Пример использования === |
| - | # | + | |
| - | # $ ispLogging outInt=(" | + | |
| - | # | + | // |
| - | # Initialization of SMS reception and test sending | + | |
| - | # | + | |
| - | :if ( $varOnly = " | + | < |
| + | |||
| + | Переменные '' | ||
| + | |||
| + | === Пример лог-файла === | ||
| + | |||
| + | < | ||
| + | In-MTS-0;; | ||
| + | In-MTS-0;; | ||
| + | In-MTS-0;; | ||
| + | In-MTS-0;; | ||
| + | In-MTS-0;; | ||
| + | |||
| + | ==== Инициализация приема SMS и тестовая отправка ==== | ||
| + | |||
| + | Если переменная в начале скрипта раскомментирована, | ||
| + | |||
| + | < | ||
| :local varOnlySubj "SMS reception is off!"; | :local varOnlySubj "SMS reception is off!"; | ||
| :local varOnlyMsg " | :local varOnlyMsg " | ||
| Строка 336: | Строка 357: | ||
| :execute " | :execute " | ||
| - | } | + | }</ |
| - | ===== Код для импорта | + | Последней строчкой включаем победную музыку, |
| - | <file rsc variables-initialization.rsc> | + | ===== Код для импорта ===== |
| + | <file rsc variables-initialization.rsc>/ | ||
| add comment=" | add comment=" | ||
| \FB\F5 \EF\E5\F0\E5\EC\E5\ED\ED\FB\F5 \E8 SMS \EF\EE\F1\EB\E5 \EF\E5\F0\E5\ | \FB\F5 \EF\E5\F0\E5\EC\E5\ED\ED\FB\F5 \E8 SMS \EF\EE\F1\EB\E5 \EF\E5\F0\E5\ | ||
| Строка 652: | Строка 674: | ||
| \n}\r\ | \n}\r\ | ||
| \n\r\ | \n\r\ | ||
| - | \n# With love from Vladivostok." | + | \n# With love from Vladivostok." |
| + | |||
| + | ===== Запуск скрипта ===== | ||
| + | |||
| + | Скрипт должен выполняться при запуске устройства и при внесении в него изменений. Параметры запуска смотрите в соответствующем [[mikrotik: | ||
| + | |||
| + | ==== Политики запуска ==== | ||
| + | |||
| + | Это минимально необходимый набор для работы скрипта. | ||
| - | </ | + | * read, |
| + | * write, | ||
| + | * policy, | ||
| + | * test, | ||
| + | * sensitive. | ||