Недавно столкнулся с небольшим кейсом по автоматизации, если не вдаваясь в детали, то заказчик хочет чтобы один и тот же сценарный файл (BAT) выполнял разные действия в зависимости от того, в какой временной промежуток он запущен. Предположим, что временные интервалы у нас 21:00-9:00 (условно ночь) и 9:00-21:00 (условно день). Как известно, в bat-файлах оператора OR нет, но вместо этого можно сделать конструкцию из двух IF таким образом, что по результатам условий (которые просто можно перечислить построчно) мы присвоим булево значение некоему флагу, а потом, в зависимости от значения флага, перейдем через GOTO на разные секции и выполним разные действия.
Кастомная микросборка WinXP
Несмотря на то, что прошло уже более 20 лет, мне все еще нравится Windows XP. Нравится её быстродействие, нравится отсутствие всяких ограничений (которых хватает в Windows 10/11) и многие другие вещи. Конечно, использовать Windows XP на современном железе — дело по многим причинам сомнительное, однако я частенько с удовольствием создаю виртуальные машины под управлением Windows XP для различного рода проектов — а в качестве установочного образа использую специальную самопальную сборку. Нет, это не какой-нибудь ZverCD, где стараниями какого-то «сборщика Васяна» стабильность работы отсутствует по умолчанию, а количество «интегрированного» софта превышает все мыслимые пределы; отнюдь, я хочу показать крайне минималистичный образ из которого вырезано практически все.
SIP звонок через GET-запрос
На компьютерах под управлением MS Windows я обычно пользуюсь SIP-клиентом PhonerLite. Недавно вышло обновление этой замечательной звонилки — теперь она оснащена Telnet-сервером, к ней можно подключаться удаленно и отдавать такие команды, как «положить трубку», «ввести номер в наборное поле», «начать дозвон» и другие. А тут как раз один из заказчиков обратился с запросом возможности совершать SIP звонок на GSM-контроллер нажатием на кнопку в HTML-странице — в общем, все звезды сошлись.
Вот маленькая самописная утилита, которая с одной стороны принимает GET-запросом номер абонента, а с другой стороны — подключается к PhonerLite через Telnet и отдает последнему команду на набор ранее полученного номера. Никаких фреймворков не требует, в конфигурационном файле задаются некоторые параметры (порт на котором стартует веб-сервер, да реквизиты Telnet на случай, если утилита и PhonerLite запущены на разных устройствах). Возможно, кому-то она сослужит такую же хорошую службу, как и мне.
Консольный SIP-клиент PJSUA для Win64
Для одного из проектов возникла потребность в софтфоне, управляемом из командной строки, сам проект, разумеется, для MS Windows. Почти с десяток разных линуксоидов-телефонистов говорили, что для MS Windows такого нет, но это не совсем так. Опенсорсный SIP-клиент PJSUA собирался в т.ч. для MS Windows, но ссылки на бинарные сборки давным-давно стухли, поэтому я попросил своего хорошего друга скомпилировать исходники заново — держите бинарник PJSUA для Win64, собран с помощью VC14 (и может потребовать соответствующих распространяемых наборов библиотек).
Получение пароля архива бэкапа Bitrix
Во многих организациях использующих лицензионный Битрикс настроено автоматическое резервирование Битрикса в «облако». Как правило, когда встает вопрос о миграции, никто не в курсе, какой пароль выставлен на архив резервной копии. Если есть доступ в админку Битрикса, тогда все просто. Переходим в раздел «Настройки», вкладка «Инструменты», далее — «Командная PHP-строка». В неё помещаем следующий скрипт для выполнения на сервере:
require($_SERVER[″DOCUMENT_ROOT″].″/bitrix/modules/main/classes/general/backup.php″);
var_dump(CPasswordStorage::Get(‘dump_temporary_cache’));
После выполнения будет возвращена строка с искомым паролем.
А еще лучше — не используйте Битрикс вовсе.
Снятие дампа базы MySQL и импорт
В очередной раз напоминаю себе, что снятие дампа базы MySQL с сервера под управлением Linux делается так:
mysqldump -v -h127.0.0.1 -uroot -p dbname > /tmp/dbname_dump.sql
И импорт на сервер, под управлением Windows, делается так:
С:\MySQL\bin\mysql.exe -u root -p dbname < T:\dbname_dump.sql
Таймаут в файлах сценариев командной строки
Эта микрозаметка повествует о том, что достаточно часто я продолжаю натыкаться на использование конструкции ping localhost в целях обеспечения задержки между командами в bat-файле, но для этих же целей и даже чуть больше (когда нужно сделать задержку более четырех условных секунд, то иной раз городят несколько пингов подряд) можно и нужно использовать команду timeout X, где X — это время задержки в секундах.
-
Свежие записи
Свежие комментарии
- Gabe Logan Newell к записи Редактор файла Hosts
Архивы
- Декабрь 2025
- Ноябрь 2025
- Октябрь 2025
- Сентябрь 2025
- Август 2025
- Июль 2025
- Июнь 2025
- Май 2025
- Апрель 2025
- Март 2025
- Февраль 2025
- Январь 2025
- Июль 2024
- Ноябрь 2023
- Сентябрь 2023
- Август 2023
- Июль 2023
- Март 2023
- Ноябрь 2022
- Октябрь 2022
- Сентябрь 2022
- Июль 2022
- Июнь 2022
- Май 2022
- Март 2022
- Декабрь 2021
- Октябрь 2021
- Сентябрь 2021
- Август 2021
- Июль 2021
- Февраль 2021
- Январь 2021
- Апрель 2020
- Январь 2019
- Декабрь 2018
- Июнь 2018
- Январь 2018
- Ноябрь 2017
- Октябрь 2017
- Сентябрь 2017
- Август 2017
- Июнь 2017
- Май 2017
Рубрики
Мета
