4 заметки с тегом

скрипт

Сцена́рный язы́к (язык сценариев, жарг. скрипто́вый язык, от англ. scripting language) — высокоуровневый язык программирования для написания сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами.

Согласно Джону Устерхауту, автору языка Tcl, высокоуровневые языки можно разделить на языки системного программирования (англ. system programming languages) и сценарные языки (англ. scripting languages). Последние он также назвал склеивающими языками (англ. glue languages) или языками системной интеграции (англ. system integration languages). Сценарии обычно интерпретируются, а не компилируются, хотя сценарные языки программирования один за другим обзаводятся JIT-компиляторами.

В более узком смысле под скриптовым языком может пониматься специализированный язык для расширения возможностей командной оболочки или текстового редактора и средств администрирования операционных систем.

Сравнение значений в скриптах

Немного ошибся и не модернизировал везде скрипты при обновлении, в результате при выходе новой ветки извещений о новой версии не получил. А все почему? Сравнение нужно делать правильно.

Не правильно
$Installed < $Latest

Правильно
$Installed != $Latest

Например мы сравниванием версии 6.45.6 (Installed) и 6.46 (Latest). Получается, что Mikrotik берет значение как число и выходит, что 646 (Latest) никак не может быть больше 6.45.6 (Installed) . В итоге неправильное сравнение больше-меньше конечно будет работать, но не во всех случаях. Для обеспечения универсальности лучше использовать сравнение. Иными словами, если у нас есть различия в версии, то явно нужно обновляться.

 Нет комментариев    123   1 мес   Mikrotik   скрипт

Скрипт для обновления AddressList

Соорудил скрипт для обновления адрес листа или листов более или менее автоматически. Давно хотел завести что-то подобное для автоматизации.

Первоначальная задумка:

  • * у нас удаленно лежит адрес лист (где-то на веб сервере);
  • * мы по расписанию (это шедулер) забираем его к себе (это фетч);
  • * далее смотрим не нулевой ли размер, если нулевой — то выходим (пока не сделано, проверка идет по наличию файла);
  • * если все в порядке, то очищаем существующий адрес лист, импортируем новый и удаляем файл;

Из ограничений:

  • * пока не умеем работать с динамическими записями и очищать их;
  • * список адресов — это по сути rsc;
  • * список адресов там пока жестко задан адрес лист (непонятно получится ли это обратить в динамичный выбор);

Ссылка на сам скрипт:
https://github.com/skurudo/mikrotik-alau

 Нет комментариев    679   2 мес   Mikrotik   RouterOS   скрипт

Cisco AnyConnect autoconnect

Появилась задача — сделать автоматическое подключение и переподключение к VPN пользователей, чтобы у них был доступ к определенному внутреннему ресурсу. VPN не наш, ресурс тоже не наш. Конечно проще всего было подключать одного пользователя и всем остальным пользователям при помощи маршрутизации отдавать тот самый заветный ресурс. Осталось решить, как быть с остальными пользователями, которые должны раз в определенный период времени показывать сетевую активность на VPN, чтобы избежать блокировки.

Идея в том, чтобы по списку подключать пользователя с учетом его логина и пароля. Далее держать его какое-то время на линии и благополучно отключать. Нам дан Cisco AnyConnect для решения задачи и сначала нужно будет разобраться с cli. Оказалось, что работа с cli и из командной строки различаются у этого клиента от версии к версии, потому далеко не все советы и руководства сработали. Для версии 4.1.х подошел вот такой вариант:

set FILE=C:\Temp\tmp.txt
echo connect vpn.server.ru> %FILE%
echo clientusername>> %FILE%
echo clientpassword>> %FILE%
"C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s < %FILE%

Осталось только сделать красиво:

  • показывать дату и время при соединении;
  • писать в лог дату и время соединения и отключения;
  • временные интервалы отсчитываем «ping localhost -n 20 >nul»;

Листинг — https://sku.ovh/?03e14b7bab3c5264#7+ocEkLcKGOjqlmJyBVDtDgEYZXMsVr4EBldB3OZat8=

 Нет комментариев    208   2016   bat   Cisco   VPN   скрипт

webasyst: missing temporary folder

Обратились с ошибкой при загрузке фотографий — «Error: missing temporary folder». С правами проблем не было, других ошибок не видно. Решение оказалось на редкость простым. Дело в том, что webasyst весьма придирчив к upload_tmp_dir. Если значение пустое, то получаем ошибку. Поэтому определим значение для пользователя четко в конфигурационном файле apache2:

php_admin_value upload_tmp_dir /home/user/tmp
 Нет комментариев    36   2015   apache   cms   php   webasyst   ошибка   скрипт