» » скриптинг

Всякие полезности при работе с bash


Всякие полезности при работе с bash


В данной статье я бы хотел собрать различные хитрости и полезности при работе со скриптами bash. Помощь по синтаксису bash вы можете найти в другой моей статье: "Краткий справочник по синтаксису bash"
Ну а тут я буду выкладывать куски готового кода, который поможет решить ту или иную задачу.

На данный момент есть решения для следующих задач:
1. Проверка на наличие активного процесса по имени
2. Получение текущей даты и её форматирование
3. Вывод отличий между двумя текстовыми файлами
4. Время выполнения скрипта
5. Проверка доступности хоста при помощи ping
6. Формирование двумерного массива
7. Удаление первых и последних символов из строк

Заполняем поле Описание у компьютера в ActiveDirectory


Заполняем поле Описание у компьютера в ActiveDirectory


Часто бывает нужно определить, за каким компьютером находится тот или иной пользователь. Собственно для этого и предназначен этот скрипт.

При выполнении скрипта происходит запись в атрибут Description (объекта — компьютера в Active Directory) имени текущего залогиненного пользователя. Это делается при логоне/логоффе пользователя.

Как все делается. Есть два скрипта, один для Logon, другой для Logoff. Скрипты эти помещаются соответственно в Logon и Logoff скрипты в групповую политику для OU, в котором находятся учетные записи пользователей.
Далее, группе… скажем Domain Users делегируем на OU, содержащий компьютеры, следующие разрешения: Computer Objects > Write Description.

Скрипт для управления сервером MRTG


Скрипт для управления сервером MRTG


Давно собирался выложить до все руки не доходили и наконец дошли.
Представляю вашему вниманию удобный BASH скрипт для управления MRTG сервером, запущенным как демон.

Скрипт умеет следующее:
./mrtg start

Запуск MRTG сервера с предварительной проверкей, не запущен ли он уже.
./mrtg stop

Остановка MRTG сервера если он был запущен
./mrtg restart

Алиас для выполнения последовательности stop-start. Проще говоря - перезагрузка MRTG.
./mrtg check

Проверка, запущен ли MRTG в данный момент. Если обнаружится, что MRTG не запущен, то будет выполнен запуск. Удобно использовать в сочетании с кронтабом.
./mrtg genindex

Перегенерирует индексную HTML страничку с графиками.

Скрипт для проверки работы OpenVPN под Linux


Скрипт для проверки работы OpenVPN под Linux


Сегодня будем настраивать автоматическое поднятие канала OpenVPN при его падении по каким-либо причинам. Данный скрипт писался для linux-клиентов OpenVPN. Так же есть стандартное решение проблемы автозапуска канала OpenVPN под Windows.
Суть скрипта в следующем:
1. Происходит проверка запущен ли OpenVPN в системе.
2. Если запущен, то пингуется указанный хост (в идеале сервер VPN), если пинг не проходит, то рестарт OpenVPN.
3. Если процесс не запущен, то стартуется OpenVPN.

Собственно сам скрипт вы сможете найти в полном посте.

Цветной bash


Цветной bash

В bash есть возможность раскрасить вывод различными цветами.

Для указания цвета используется следующая конструкция echo:
echo -e "\e[<код_цвета>m <текст> \e[0m"


Таблица кодов цветов в полном топике.

Чистка мусора после обновления Debian


Стандартная процедура обновления заключается в следующем:
1. Правим список репозиториев в "/etc/apt/sources.list" на актуальные.
2. Запускаем обновление, выполняя
apt-get dist-upgrade

3. Перезапуск, командой:
shutdown -r now


После такого обновления часто в системе остаются не удаленные пакеты.
Их список можно посмотреть командой:
dpkg -l | grep ^rc

Чтобы от них избавиться, выполняем следующую команду:
dpkg -l | grep ^rc | cut -d' ' -f3 | xargs dpkg -P

Все. Все пакеты почищены.

Краткий справочник по синтаксису Bash


Данный справочник будет содержать наборы приемов из bash скриптов, которые решают те или иные задачи. Все решения были реализованы на основе мануалов или же взяты из открытых источников.
По ходу дела буду обновлять данный справочник новыми приемами и решениями.

Проверка и генерирование регулярных выражений


Проверка и генерирование регулярных выражений


Сегодня в очередной раз пришлось столкнуться с regex (Regular Expressions) и не просто столкнуться, а прописать их самому, т.к. у меня с ними как-то уж совсем не очень, ринулся я в Яндекс на поиски и наткнулся на замечательный сайт для генерации регулярных выражений.
Плюшки:
- Наложение regex на введенную строку на лету.
- Небольшой и понятный мануал по синтаксису.
- Приятный и понятный интерфейс.

В общем, делюсь ссылкой: Scriptular.com
Спасибо автору сайта.

Автоматическая очистка временных файлов в Windows


Временный файл (temp file) - файл, создающийся различными программами или ОС для записи промежуточных результатов в процессе работы. В теории, такие файлы должны удаляться автоматически создавшей их программой, но на деле получается совсем иначе. Системные папки, со временем, начинают переполняться такими файлами и в итоге занимают на диске очень много места. Именно поэтому пришлось написать скрипт для автоматической очистки временных файлов из системных директорий.

Скрипт очистки состоит всего из двух строк:
pushd %TEMP% && rd /s /q . > nul 2>&1
pushd %TMP% && rd /s /q . > nul 2>&1


Как настроить автоматическое выполнение читайте в полном топике.

Настройка собственных DNS серверов BIND


Настройка собственных DNS серверов BIND


В интернете много различных статей о том, как настроить bind9 или любой другой DNS сервер, но не так уж много статей о том, как автоматизировать обмен изменениями между несколькими DNS серверами. В этой статье я и хотел бы разобрать данный вопрос.

Основная цель: добиться автоматизации распространения обновленных данных на несколько DNS серверов: добавление, редактирование, удаление доменных зон.

Про то, как устанавливать bind, думаю, говорить не стоит. Перейдем непосредственно к автоматизации обмена между главным (master) и вторичным (slave) сервером. Все телодвижения будут выполняться на платформе Debian 6 с Bind9 и Rsync на борту.