Приветствую.
Решил быстренько закатать еще один мануал
Кстати, помните, что каждый автор пишет маны со своей системы, поэтому тупо копировать код и ставить в указанные файлы - плохая идея (например, пути к директориям могут быть разные или просто неподходящие для Вас).
И еще - все, что я тут пишу, вы делаете на свой страх и риск. Особенно, если мозгов у вас не хватает или вы просто "не хотите заморачиваться".
Let's start!
Если вы как и я любите экспериментировать, то вам не избежать периодических смертей системы.
Чтобы минимизировать риски можно настроить автоматическое резервное копирование всей системы или определенных папок без танцев с бубнами.
Резервное копирование будет работать по такой простой схеме:
Итак, приступим:
1. Запомните этот шаг навсегда и выполняйте его всегда - обновляем списки пакетов:
apt-get - стандартный менеджер пакетов в Debian. Данная команда получает последние версии имеющихся в дистрибутивах пакетов. Не выполните - поставите на следующем шаге старый пакет.
2. Ставим rsync и tar, если вы еще этого не сделали:
3. Запускаем crontab от имени root:
Почему от рута, если кронтаб можно запустить от имени любого пользователя? Да все просто: простым смертным не-root'ам недоступны некоторые каталоги системы и в итоге мы поймаем "баг" - резервное копирование споткнется на половине пути.
4. Создаем в crontab задания по расписанию. Всего 3 строки, как я и писал выше (я разделю их абзацами, чтобы было понятнее):
Что же у нас тут творится?
Строка 1. rsync каждый день в 2 часа ночи начинает бэкапить всю файловую систему в папку fullbackup-daily, за исключением /var/cache/, /proc/ и так далее (все, что указано с аргументом --exclude), так как это говно нам не нужно!
У меня это строка выглядит слегка иначе, например, я не бэкапю некоторые системные папки медиа-сервера с автоматически-созданными эскизами картинок, так как это не самая важная информация (они пересоздадутся за 5 минут), а места занимает она очень много и не жмется архиватором нихера!
Обратите внимание, что мы не бэкапим смонтированные диски, саму же папку с бэкапами и т.п. Причины объяснять, думаю, не нужно (хотя любитель арифметических прогрессий может поэкспериментировать)
Кстати, некоторые спросят, почему rsync, ведь интереснее же задрочиться с cp
Просто rsync - не тупая копировалка, она смотрит, изменился ли файл или директория и только если файл менялся копирует его, т.е. не делает лишней работы. О других плюсах этой утилиты читайте в интернетах.
Строка 2. tar каждую среду в 4 часа ночи делает полный архив нашего ежедневного бэкапа с именем вида "fullbackup-weekly-15-Jul-2015.tar" и кладет его в папку fullbackup-weekly-arch. По сути просто жмем файлы и все, так как незаархивированная система весит неслабо и жмется в 2-5 раз смело.
Лирическое, но полезное отступление:
Внимательный читатель заметит одну особенность команды и сделает для себя выводы. Это я говорю про фрагмент строки "(date +'\%d-\%b-\%Y').tar.gz". Если всю данную строку выполнить не из крона, а просто из терминала, то она отработает через жопу и создаст файл с кривым именем, так как в терминале данный участок строки должен выглядеть как "(date +'%d-%b-%Y').tar.gz" (т.е. без бэк-слэшей "\").
"Что за говно?!" спросишь ты, внимательный читатель. Ответ как всегда прост: cron хреново работает с процентиками и прочей мишурой
Поэтому мы и даем ему понять, что тут переменная, а не х*й собачий.
Строка 3. А эта строка у меня под вопросом
По-моему мне так и не удалось ее заставить работать.
Она должна каждую среду в 6 утра удалять файлы (архивы с бэкапами) возрастом более 30 дней.
Придумал! Будем считать это домашним заданием! Итак, пытливый ум, заставь же работать третью строку!
На этом все.
Немножко статистических данных, ведь, может быть, вся эта хрень весит безбожно.
Если вы обычный юзер, у вас не поднято веб-окружение с прочими серверами, то вся система у вас будет весить максимум 5 гигов, а каждый архив примерно 1 гиг. При этом весь процесс резервного копирования займет максимум час, а в кроне я специально выполняю команды через 2 часа - контрацепция!
Решил быстренько закатать еще один мануал

Кстати, помните, что каждый автор пишет маны со своей системы, поэтому тупо копировать код и ставить в указанные файлы - плохая идея (например, пути к директориям могут быть разные или просто неподходящие для Вас).
И еще - все, что я тут пишу, вы делаете на свой страх и риск. Особенно, если мозгов у вас не хватает или вы просто "не хотите заморачиваться".
Let's start!
Если вы как и я любите экспериментировать, то вам не избежать периодических смертей системы.
Чтобы минимизировать риски можно настроить автоматическое резервное копирование всей системы или определенных папок без танцев с бубнами.
Резервное копирование будет работать по такой простой схеме:
1. Каждый день ночью создаем резервную копию нужных нам каталогов в одной и той же папке;
2. Каждую среду создаем архив с последним бэкапом
3. Каждую среду ищем архивы, возрастом более 30 дней и удаляем их.
Так это работает у меня и это удобно для меня. Можете конфигурить как вам удобно.2. Каждую среду создаем архив с последним бэкапом
3. Каждую среду ищем архивы, возрастом более 30 дней и удаляем их.
Итак, приступим:
1. Запомните этот шаг навсегда и выполняйте его всегда - обновляем списки пакетов:
Код:
apt-get update
2. Ставим rsync и tar, если вы еще этого не сделали:
Код:
apt-get install rsync tar
3. Запускаем crontab от имени root:
Код:
sudo crontab -e
4. Создаем в crontab задания по расписанию. Всего 3 строки, как я и писал выше (я разделю их абзацами, чтобы было понятнее):
Код:
0 2 * * * rsync -r -t -v -z -a --progress --delete --exclude /var/cache/ --exclude /proc/ --exclude /sys/ --exclude /mnt/ --exclude /dev/ --exclude /boot/grub/grub.conf --exclude /media/ / /media/data/etc/backup-files/fullbackup-daily
0 4 * * 3 tar -zcvpf /media/data/etc/backup-files/fullbackup-weekly-arch/fullbackup-weekly-$(date +'\%d-\%b-\%Y').tar.gz /media/data/etc/backup-files/fullbackup-daily/*
0 6 * * 3 find /media/data/etc/backup-files/fullbackup-weekly-arch/ -type f -mtime +30 -exec rm -rf {} \;
Что же у нас тут творится?
Строка 1. rsync каждый день в 2 часа ночи начинает бэкапить всю файловую систему в папку fullbackup-daily, за исключением /var/cache/, /proc/ и так далее (все, что указано с аргументом --exclude), так как это говно нам не нужно!
У меня это строка выглядит слегка иначе, например, я не бэкапю некоторые системные папки медиа-сервера с автоматически-созданными эскизами картинок, так как это не самая важная информация (они пересоздадутся за 5 минут), а места занимает она очень много и не жмется архиватором нихера!
Обратите внимание, что мы не бэкапим смонтированные диски, саму же папку с бэкапами и т.п. Причины объяснять, думаю, не нужно (хотя любитель арифметических прогрессий может поэкспериментировать)
Кстати, некоторые спросят, почему rsync, ведь интереснее же задрочиться с cp
Просто rsync - не тупая копировалка, она смотрит, изменился ли файл или директория и только если файл менялся копирует его, т.е. не делает лишней работы. О других плюсах этой утилиты читайте в интернетах.Строка 2. tar каждую среду в 4 часа ночи делает полный архив нашего ежедневного бэкапа с именем вида "fullbackup-weekly-15-Jul-2015.tar" и кладет его в папку fullbackup-weekly-arch. По сути просто жмем файлы и все, так как незаархивированная система весит неслабо и жмется в 2-5 раз смело.
Лирическое, но полезное отступление:
Внимательный читатель заметит одну особенность команды и сделает для себя выводы. Это я говорю про фрагмент строки "(date +'\%d-\%b-\%Y').tar.gz". Если всю данную строку выполнить не из крона, а просто из терминала, то она отработает через жопу и создаст файл с кривым именем, так как в терминале данный участок строки должен выглядеть как "(date +'%d-%b-%Y').tar.gz" (т.е. без бэк-слэшей "\").
"Что за говно?!" спросишь ты, внимательный читатель. Ответ как всегда прост: cron хреново работает с процентиками и прочей мишурой
Поэтому мы и даем ему понять, что тут переменная, а не х*й собачий.Строка 3. А эта строка у меня под вопросом
По-моему мне так и не удалось ее заставить работать.Она должна каждую среду в 6 утра удалять файлы (архивы с бэкапами) возрастом более 30 дней.
Придумал! Будем считать это домашним заданием! Итак, пытливый ум, заставь же работать третью строку!
На этом все.
Немножко статистических данных, ведь, может быть, вся эта хрень весит безбожно.
Если вы обычный юзер, у вас не поднято веб-окружение с прочими серверами, то вся система у вас будет весить максимум 5 гигов, а каждый архив примерно 1 гиг. При этом весь процесс резервного копирования займет максимум час, а в кроне я специально выполняю команды через 2 часа - контрацепция!
Последнее редактирование: