Часто очень удобно делать бекап на какой-нибудь сервер в сети. SSH в сумме с такими средствами бекапа как dump/restore или dd предоставляет для этого хорошие возможности.
На самом деле, все просто. Достаточно взглянуть на команды. Вот backup с помощью dump/restore:
ssh alexey@192.168.0.1 'sudo dump -af- /dev/hda2' | dd of=hda.dump
Восстанавливается потом командой:
restore -rf hda.dump
А вот сразу с восстановлением:
ssh alexey@192.168.0.1 'sudo dump -af- /dev/hda2' | restore -rf-
а это с помощью dd:
ssh alexey@192.168.0.1 'sudo dd if=/dev/hda2' | dd of=backup.img
На самом деле, все просто. Достаточно взглянуть на команды. Вот backup с помощью dump/restore:
ssh alexey@192.168.0.1 'sudo dump -af- /dev/hda2' | dd of=hda.dump
Восстанавливается потом командой:
restore -rf hda.dump
А вот сразу с восстановлением:
ssh alexey@192.168.0.1 'sudo dump -af- /dev/hda2' | restore -rf-
а это с помощью dd:
ssh alexey@192.168.0.1 'sudo dd if=/dev/hda2' | dd of=backup.img
По-моему такой способ не очень хорошо будет работать на рабочей системе, ведь он берёт данные с диска напрямую по байтам, а пока он читает, например, вторую половину, в первой уже может что-то поменяться, в итоге при восстановлении вылезут ошибки. А также линух кеширует в памяти операции записи, так что программа уже записала что-либо, а на диске этих данных не появилось или появилось только наполовину... Вобщем будет больше проблем чем счастья ;)
ОтветитьУдалитьТак что такой способ можно применять только на отмонтированном диске!
Murz, я этот метод, в основном, на телекомовских серваках применял, которые роутингом занимаются. Так там ничего особо не меняется за время бекапа.
ОтветитьУдалитьМожно и отмонтированные диски так бекапить. Почему нет?
На серваках, которые не ведут активную запись на диск - да, можно применять, но в статье об этом не сказано.
ОтветитьУдалитьА если на сервере стоит apache с рабочими сайтами, то там каждую секунду что-то пишется в логи, например. Да и стандартные демоны тоже в логи любят периодически писать и если этот момент совпадёт с бекапом, то всё порушится.
А люди почитают эту статью и начнут применять такой способ бекапа везде, а потом огребут кучу проблем. Поэтому я и решил написать предупреждение об этом...
Ну в статье также не сказано, что орехи колоть серверами лучше не надо :-))
ОтветитьУдалитьСогласен, конечно, с замечаниями, тем более, что разработчики dump/restore сами не советуют на примонтированном разделе пользоваться утилитой.
На практике пока у меня ни разу с этим методом сбоев не было (раз 20 точно пользовался).
Бекап он на то и бекап чтобы давать 100% гарантию сохранности результатов, а то будет очень печально что 99 раз бекап был нормальный, а сотый бекап, когда вдруг всё слетело и стало нужно срочно восстановить, окажется порушенным, а так обычно и бывает по закону подлости ;) С файлами mysql-таблиц в innodb, например, при таком способе бекапа точно будут проблемы в случае если бекап делается со включенным mysql-сервером.
ОтветитьУдалитьПоэтому лучше всё же бекапить не как проще, а как надёжнее.
Я, например, бекаплю файлы и базу через backup-manager - http://www2.backup-manager.org/ - она бекапит сами файлы и при необходимости можно восстановить из бекапа только 1 файл или папку.
Ну, конешно, для каждого случая свои методы хороши, поэтому твой метод тоже применим, например на телекомовских серверах ;)