Тест S5 Box

Вот примерно так работает модуль в реале...

Планирование автоматического резервного копирования в Ubuntu

Скрипт - резервная копия в Linux

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

Как то в одной из прошлых статей я писал уже об автоматическом резервном копировании файлов и папок в Windows XP. Для этого очень хорошо подошла программа Cobian Backup. С данной программой я работаю уже 2 года, но эта программа подходит только для Windows.

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

Задача

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

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

Задача ясна и теперь можно переходить к ее реализации.

Для начала создадим пустой файл в папке /home/user, гда user - папка вашего пользователя. Назовем файл скажем backup.sh,  и запишем в него данный код:

#!/bin/bash
#backup.sh
timestamp=`date "+%Y.%m.%d.%H.%M.%S."`
backupFS=/home/user/folder
backupTO=/home/user/Backup/
#KeepTime=7
if [ -d $backupTO ]; then
find $backupTO -maxdepth 1 -name \*.tar.gz -mtime +${KeepTime} -exec rm -f {} \;
for i in $backupFS
do
j=`expr ${i//\//-}`
tar -zcvf $backupTO/`hostname`.${timestamp}.${j}.tar.gz $i
echo$i is done”
done
else
echo “backup directory is missing...exiting”
exit 1
fi

Основные изменяемые параметры:

  • timestamp - переменная, которой присваивается текущее дата и время (его мы будем успользовать в названии файла);
  • backupFS  - резервную копию этой папки мы будем делать;
  • backupTO - папка в которую будем делать копию;
  • find - утилита поиска файлов, подробней о ней читайте тут.

Остальное можно описать так: программа будет искать в папке /home/user/Backup/ архивы созданные более 7 дней назад и удалит их, далее создастся наша резервная копия. Проверка и удаление старых копий нужна чтобы наш жесткий диск со временем не переполнился копиями. 

Запуск скрипта в нужное время

Итак скрипт у нас есть и он работает. Теперь сделаем, чтобы он запускался в нужное время. У меня компьютер не отключается и я буду делать создание копии утром перед началом работы, скажем в 5:30.

Для планировки задания будем использовать Cron — демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время. (WIKI)

Запускаем терминал и выполняем команду:

# crontab -e

(Важно знать, что под каким пользователем Вы выполните эту команду, под тем пользователем и будет она запускаться)

Перед первым запуском cron може попросить выбрать редактор для редактирования настроек cron, я выбрал nano.

Итак перед вами окно планировщика, в конец я добавил строку такого типа:

30 5 * * 0-7 /home/user/backup.sh

Сохранив файл я получил автоматическое выполнение моего скрипта в 5:30 утра ежедневно (0-7).

Все параметры описаны на английском и закоментированы, зная язык Вы легко настроите планировщик под себя. Вопросы приветствуются! Удачи!

P.S. "Еще одна интересная страница интернета, позволяющая постоить команду find - http://find.unixpin.com/ru/"{odnaknopka}

cs-nsk

Добавить комментарий

Пожалуйста, старайтесь оставлять комментарии согласно выбранной статьи...


Защитный код
Обновить

Последние комментарии

Теги ...

Опрос: iOS или Android ?

Какой ОС вы чаще пользуетесь?

iOS - 0%
Android - 60%
Windows Mobile - 20%
Tizen - 0%
Другая. - 20%

Всего голосов: 5
Голосование в этом опросе закончено в: 01 Янв 2017 - 00:00
Яндекс.Метрика Анализ сайта Рейтинг@Mail.ru