Резервное копирование Виртуальных машин в Unix
Простой скрипт для решения достаточно важной задачи каждого системного специалиста.
Конечно же для резервного копирования лучше использовать отдельный жесткий диск.
Размечаем диск для бекапов с помощью утилиты fdisk либо cfdisk, кому как удобно. Для архивных копий не большого размера лучше использовать файловую систему ext4, если же архивные копии большого размера, тогда ReiserFS.
Создаем раздел под названием backup и монтируем в него диск командой mount /dev/sdX /backup где X ваш размеченный раздел.
Теперь напишем сам файл для запуска копирования, допустим он будет хранится в разделе /opt.
Открываем с помощью редактора файл /opt/backup_virt
И вписываем следующие строки
find /backup/ -type f -atime +7 -exec rm {} \; - Данная команда выполняет поиск файлов старше 7 дней в разделе backup и удаляет их. Вы можете указать больше, если нужно несколько более старых копий.
dd if=/img/image.raw bs=8M conv=sync,noerror | gzip -c > /backup/image.raw-$(date "+%F") - здесь команда выполняет по секторное копирование образа image.raw в директории img.
Параметр bs указывает количество байт(по умолчанию) или мегабайт(указываете букву M) записанных за раз.
Параметр conv будет игнорировать ошибки и записывать бит в бит.
Дальше образ сжимается с помощью утилиты gzip, в директории /backup с именем image.raw-$(date "+%F")
$(date "+%F") - обозначает дату создания файла.
Сохраняем файл и делаем его исполняемым с помощью команды chmod +x /opt/backup_virt
Добавляем задание в Планировщик cron запустив с помощью команды crontab -e
0 1 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29 * * /opt/backup_virt &> /dev/null
0 1 - запуск скрипта в час ночи
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29 - дни месяца
Резервное копирования лучше запускать в тот момент когда нагрузка минимальная на сервер.
Возможно вам будет полезна статья резервное копирование сайта с выгрузкой базы mysql
0 комментариев