LinuxForum.Fans
Тема

Я "в танке", помогите плз забэкапиться

Автор: Me_Shock 22 сообщений 5246 просмотров
#218355

Железяка:
Core i5-760, 2x2Gb RAM, 2xHDD 500Gb (RAID1, LVM), +1 HDD 640Gb для бэкапов( /BACKUP ).
На нем имеем:
сервер (deb 6.0.3 amd64) Крутятся web,print-server, БД mysql штук 5 и файлопомойка ~ 150Gb ( /winall )
Задача:
1. Полный бэкап OC 1р. в нед, по накоплению 4x бэкапов, циклич. перезапись с самого старого. (необходимо чтобы БД поднялись в случае чего..)
2. Начинать полный бэкап шары 1р. в нед.(думаю заTARивать), и дифференциально его всю неделю потом писать (rsynch-ом?), продолжать в таком духе, пока хватает места под очередной /winall, дальше циклич. перезапись с самого старого.
Инструменты:
мой Моск, коллективный разум Linuxforum.ru, tar, rsynch, (dd ?)
Вопросы:
Q1. Есть чистый поставленый debian, /

Показать
bin
initrd.img
lib64
root
srv
usr
boot
etc
lib
opt
sbin
sys
var
home
lib32
selinux
tmp
vmlinuz

я исключил dev, mnt, media, lost+found, proc Правильно исключил?

#218381

У меня в кроне работает вот такая штука http://zenon.sytes.net/rotation-backup/
Только в тело скрипто добавлен слив мускула. В общем-то в скрипт можно добавить цикличный бэкап чего угодно и куда угодно. wink

#218408

Enzo_brn, два варианта:
№1 убей сибя апстену
№2 плати деньги
третьего не дано, что-бы там newzenon не говорил...

#218418

drBatty, в качестве постпраздничного пожелания/предупреждения: «Когда не в настроении — просто не отвечайте! Практическая польза вашего совета, в данном случае, стремится к нулю.»

#218466

Enzo_brn, на резкие выпады drBatty не обращай внимания, ну заносит его переодически, есть вопросы - спрашивай не стесняйся.

#218626

Спасибо большое модератору и администратору за помощь и защиту от недружелюбного drBatty и всем откликнувшимся smile .
Что-нибудь обязательно выберу и на основе (скриптов) свояю свое. Тут еще вопрос по тару назрел:

Ключ - v выдает слишком много, а без него слишком мало, хочется прогрессбар, на подобие: http://www.theiling.de/projects/bar.html
или такого http://linux.koolsolutions.com/2009/01/21/a-text-progress-bar-for-shell-scripts-and-commands-in-linux/, вот только не понял возможно ли
их заставить показывать прогресс выполнения сжатия в архив а не распаковки, копирования и листинга ибо таких примеров везде хватает.

#218646

newzenon, спасибо smile . Больше всего понравился (по описанию) rsnapshot. прост в настройке, прозрачный конфиг, все разжевано. Думаю, не стоит мне велосипед изобретать.

#218780
Enzo_brn написал:
и администратору за помощь и защиту от недружелюбного drBatty и всем откликнувшимся

от... Я как раз белый и пушистый. Учитесь задавать вопросы. RTFM
[console]# wtf RTFM[/console]

#218792

Enzo_brn, если вы знаете bash, то можно все сделать скриптом и засунуть в crontab.

#218935

drBatty, ну если вы белый и пушистый то я тогда Linus Torvalds :D
Не знал какой именно FM следует R, по-этому и поинтеросовался wtf будет лучше для поставленой (хоть и пустяковой по-сути) задачи.
зы: Пришел сюда не понты колотить (так что рога обламывать не обязательно), а за советом и чтобы научиться хоть чему-то.. (я как бы не говорил что у меня моск в дверной проем не проходит. КАЖДЫЙ "делает" в меру своего уровня iq) и к любым советам, тем более профи форума прислушиваюсь, да и количество сообщений и рейтинг какбЕ, намекают.

#218937

Nigelist, баш не знаю, как и еще с 10ток яп, но общее представление сложилось, этого вполен хватает чтобы "чужое добро" переделать под свои нужды.
засунул в крон rsnapshot, скрипт для mysqldump и скрипт с dd, сливающий образ "/" раз м месяц))
Спасибо всем-всем за помощь!

#219537
Enzo_brn написал:
drBatty, ну если вы белый и пушистый

IRL я действительно сейчас такой.
1. я не негр.
2. я небрит.
smile

Enzo_brn написал:
Не знал какой именно FM следует R

man tar
man mysqldump
В вашем случае всё ОЧЕНЬ плохо. Ибо для создания бекапа вашими методами потребуется как минимум часов 240...24000. В сутки. И сервер всё это время будет остановлен. Т.е. это принципиально невозможно. Ну на реальных нагрузках. В тестах "я и моя кошка" всё работает. В случае mysql, на очень слабо загруженной системе (10000 запросов В СУТКИ), и на совсем крохотной БД (сотни метров) такой подход работает, если минут 5..10 в пол-четвёртого утра сервером никто не пользуется. В случае самой системы... Ну тут ведь как... Бекап-то сделается, вот только не факт, что он развернётся. Я имею ввиду IRL.

И да, если уж делаете так (систему), то ныряйте в init 1. Хотя, если вас устроит 99% гарантии, то можно и так, как вы говорите.

#219558

СПС) drBatty, не материтесь при детях непонятными словами, smile

drBatty написал:
IRL
Да какая там нагрузка, тут дерЁвня! 4-5 машин, с 10:30 да 18:00 (7,30h/6d) 5 БД по 20-50mb. и файлов ~150gb с изм./день 100-500mb. Имел в виду "/" бэкапится раз/мес, а снэпшоты самбы каждую ночь циклически на мес. Нагрузки почти 0% 24/7 smile - но все же если что-то пропадет(сами снесут не подумав - такое бывало и не раз) будет очень грустно..
#219567
Enzo_brn написал:
СПС) drBatty, не материтесь при детях непонятными словами, smile

IRL

захожу в консоль, набираю:
[console]$ wtf IRL
IRL: in real life[/console]

В первом посте ведь кто писал?

Enzo_brn написал:
Есть чистый поставленый debian

ы?

Enzo_brn написал:
Да какая там нагрузка, тут дерЁвня! 4-5 машин, с 10:30 да 18:00 (7,30h/6d) 5 БД по 20-50mb. и файлов ~150gb с изм./день 100-500mb. Имел в виду "/" бэкапится раз/мес, а снэпшоты самбы каждую ночь циклически на мес. Нагрузки почти 0% 24/7 smile - но все же если что-то пропадет(сами снесут не подумав - такое бывало и не раз) будет очень грустно..

вот С ЭТОГО и надо было начинать. Решение очень простое:

1. делаем всё что нужно прямо в консоли. И ТОЛЬКО в консоли.
2. п1 повторить до полной работоспособности.
3. записываем все набранные вами команды
4. после каждой команды, которая МОЖЕТ завершится с ошибкой пишем что-то типа

text
error_code=$?
if [ $error_code != 0 ]; then
  echo "$0:$LINENO: случилась ошибка с кодом $error_code" | tee -a /var/tmp/logfile.log
  exit $error_code
fi

ВАЖНО
а)пробелы важны.Как у меня написано, так их и надо расставлять!

text
error_code = $?

bash НЕ понимает.
б) в начале файла должно быть написано

text
#!/bin/bash

причём в ПЕРВОЙ строке.
в) последняя строчка должна быть пустой.
г) сам bash должен быть установлен в системе.
д) некоторые команды _могут_ завершится с ошибкой, но это _не_ ошибка по логике скрипта. Например, команда ls * в пустом каталоге завершается с ошибкой №2. Это особый случай, добавьте в if секцию elif для его обработки.
е) Переменная $PATH должна быть задана там, где запускают скрипт. Иначе получится, (как обычно) - по расписанию не работает, а так - работает.
5. запускаем и смотрим.
6. если что - исправляем ошибку.
7. PROFIT!!!!!11

Enzo_brn написал:
1. Полный бэкап OC 1р. в нед, по накоплению 4x бэкапов, циклич. перезапись с самого старого. (необходимо чтобы БД поднялись в случае чего..)

не проще-ли затарить /var/lib/mysql? И зачем, если есть mysqldump? Одной копии самого сервера хватит. Её надо будет делать раз в году, когда сервер правите (конфиги). Хотя я делаю проще - просто не удаляю, а комментирую старые строчки.

Enzo_brn написал:
2. Начинать полный бэкап шары 1р. в нед.(думаю заTARивать), и дифференциально его всю неделю потом писать (rsynch-ом?), продолжать в таком духе, пока хватает места под очередной /winall, дальше циклич. перезапись с самого старого.

затаривайте. tar умеет делать инкрементальные бекапы. (т.е. дописывает новые файлы к старому архиву). Удобнее найти все новые файлы (man find -newer) и забекапить только их. Распаковать такой "инкрементальный" архив очень просто - называйте файлы по дате, в начале поставьте

text
`date +%s`

(это число сек. с 01.01.1970)
тогда файлы будут отсортированы по дате. И когда распакуются, то распакуются с самых старых. Новые файлы затрут старые (единственный минус - остануться старые, которых нет в посл. бекапе, это не важно и правится руками. И долго. Тоже не важно - разворачивать бекапы нужно редко в идеале - никогда).
что до "циклической перезаписи", это вы не правильный велосипед придумали. Правильный: составьте список бекапов начиная с самого нового, и удалите в списке все строчки с первой до четвёртой.
[console]$ sed -i '1,4d' file_list.txt[/console]
Это те файлы, которые надо удалять. Хотя вооще-то есть специальная утилита logrotate.

#220863

drBatty, затролили меня непонятными конструкциями шела smile )), хорошо хоть никто такого "sudo dd if=/dev/zero of=/dev/sda" не предложил, поэтому я надолго ушел читать man-ы, пока есть на чем :D Только вот с командой wtf непонятка вышла - делал по-вашему, но она у меня как то странно себя ведет:

drBatty написал:
захожу в консоль, набираю:[console]$ wtf IRL
IRL: in real life[/console]
ааа, я тоже так попробовал написать но у меня почему-то все по другому..
[console]root@iserver:~# uname -a
Linux iserver 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64 GNU/Linux
root@iserver:~# wtf RTFM
RTFM: Read The Fucking Manual, stupid Dude
root@iserver:~# wtf IRL
bash: wtf: command not found, although you can to try 'wtf IUL'
root@iserver:~# wtf IUL
IUL: in unreal life, drBatty
root@iserver:~#[/console]
Что это за странная команда вобще такая..?
#220879

Enzo_brn, wtf = what the fuck - баловство, есть man вот и используй... smile

Войдите или зарегистрируйтесь, чтобы ответить.