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


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


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

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

Скрипт для управления сервером 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"


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

Настройка сервера rsync с авторизацией


Настройка сервера rsync с авторизацией


rsync (англ. Remote Synchronization) — программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
© Wikipedia

Я уже писал об использовании rsync в разных вариациях в предыдущих статьях: Бэкап с помощью rsync на Debian, Скрипт для резервного копирования Linux сервера, Настройка собственных DNS серверов BIND.
Сегодня мы рассмотрим возможность использования Rsync в качестве сервера.

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


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

Обзор Free LinuxBackuper


Обзор Free LinuxBackuper


Наконец-то дошли руки написать обзор о моем проекте Free LinuxBackuper.
Разработка ведется давно, но не хотелось выкладывать обзор сырой версии. Теперь же LinuxBackuper достиг версии 1.1 и является вполне серьезной системой резервного копирования для Linux серверов написанной на Bash.

Разработка LinuxBackuper ведется на CodePlex - хостинге OpenSource проектов от Microsoft. Кстати, ссылка на проект LinuxBackuper есть в панельке "OpenSource проекты" с правой стороны.

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


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


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

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

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

Скрипт для резервного копирования Linux сервера


Скрипт для резервного копирования Linux сервера


Бэкапы - такое святое слово, да еще и такое важное, но многие так ленятся что-либо настраивать когда речь идет о резервном копировании.

Однажды я уже писал о том, как делать бэкапы с помощью rsync, а так же как перенести весь софт с одной системы на другую. Сегодня речь пойдет об еще одном способе - с помощью bash скрита с последующим сжатием бэкапа в архив.

Итак, задача: настроить резервное копирование Linux (Debian 6.0) серверов со складыванием .tar.gz архива в определенную папку.

Попробуем реализовать.

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


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


Были ситуации когда интернет как бы «зависал», но при этом соединение не отваливалось. Пришлось немного помучится и в итоге появился на свет скрипт для автоматической проверки наличия соединения и его переподключения в случае отсутствия доступа в инет.

Далее следует код bash скрипта, который следует запихать в cron на проверку через n-ое кол-во минут/секунд. Пояснения к скрипту в конце.