Рашид Ачилов
Он умеет скопировать каталог с жесткого диска в заранее обусловленное
место, предварительно его запаковав. Он может создать резервную копию части
сетевого ресурса Windows, для чего он сам подключит и сам отключит ресурс. Он
способен зарезервировать данные из СУБД MySQL (правда, только формата MyISAM).
Он не перепутает каталоги для хранения копий и никогда не затрет старую копию
более новой. Он вежлив – по завершении работы непременно доложит о выполнении.
Он – это скрипт для резервного копирования 130.backup-dirs.
Изобретаем велосипеды
История разработки скрипта восходит к началу моего осмысленного увлечения
UNIX, как минимум к 1998 году. Начинающие системные администраторы обычно
познают ценность резервных копий после первого выхода из строя жесткого диска,
и я не был исключением. И непосредственно после восстановления системы (слава
Богу, вышла из строя рабочая машина, не сервер) возникла мысль «а не написать
ли мне скриптик, который бы по расписанию копировал некоторые каталоги в опредедленное
место?». С тех пор скрипт многократно перерабатывался, однажды был коренным
образом переписан с tcsh на /bin/sh, расширялся, научился работать с сетью Windows
и базами MySQL, но суть его всегда оставалась неизменной – взять каталог,
запаковать его и переписать в заранее оговоренное место, выполнив перед этим и
после этого некоторые действия, направленные на сохранение целостности
(подключение-отключение ресурсов, блокировка-разблокировка таблиц БД).
Эта статья может принести пользу как тем, кто
ищет практические советы, так и людям любознательным, которым интересно, как
оно устроено и работает.
В первой части объясняется, как установить и
настроить скрипт и как его запустить. Во второй части разбираются некоторые фрагменты
из исходного кода, которые мне показались заслуживающими внимания.
Здесь сразу отмечу, что скрипт работает не сам по
себе, а достаточно глубоко интегрирован с другими разработками – [1, 2]
(mountsmb2), хотя, конечно, ни одна из них не является критичной для работы
всего скрипта. Но в отсутствии настроенного mountsmb2 не будет доступна
возможность копировать данные с сетевых ресурсов Windows.