» UNIX и дериваты>Как правильно делать backup на работающей системе?
Hip-Hop 11:22 26.04.2011
Ну, если система работает и нужно делать регулярные backup ВСЕЙ системы. Я использую для backup - fsarchiver, но тут возникает вопрос.. fsarchiver может сделать бэкап и на rw смонтированной файловой системе. Но я могу перед backup.. сделать remount в ro.
Например имеем такую структуру:
/ - sda1
/home - sda5
/var - sda6
Я делаю mount -no remount,ro / и т.д и потом backup через fsarchiver. Я все правильно делаю?
С другой стороны.. я уже несколько раз клонировал систему сделанную в rw (fsarchiver) и не заметил каких-то страшных изменений.
[Ответ]
Hip-Hop 11:56 26.04.2011
То-есть, я хочу делать remount ro не уходя с runlevel 2.
[Ответ]
Hip-Hop 12:48 26.04.2011
Ну, как? c / и /home проблем не возникает и они переходят в ro, но вот /var...
Основываясь на выводе lsof /var я убираю все процессы, но даже после var не получается перемонтировать в ro. Какой есть выход?
Что мы получим если сделаем следующую операцию? Магия!
mount /dev/sda6 /mnt
mount -o remount,ro,bind /mnt
[Ответ]
Hip-Hop 21:45 26.04.2011
Ну, как я уже сказал.. с var возникают проблемы и не получается перевести её в ro.
Я обхитряю linux так.. (или он меня? )
Я создаю раздел - /dev/sda7 и делаю на нём файловую систему.. перевожу её в ro
mount -o ro /dev/sda7 /mnt и делаю mount --bind /var /mnt
и fsarchive savefs fs.fsa /dev/sda7 (надо подправить uudi и в fstabe относительно /dev/sda6).
Получаю var в режиме ro, но есть ли от этого толк? [Ответ]
Hip-Hop 22:07 26.04.2011
Кстати, наверное так не получится. там.. uuid высчитывается каким-то сакральным образом (насколько я слышал) и просто 'подменить' его не получится. И в этого при восстановлении мы столкнёмся с несоответствием, но надо попробовать. Хотя.. к uuid мы и не привязаны железно, imho, эт решаемо.
[Ответ]
Hip-Hop 23:17 26.04.2011
Кстати, тут надо что-то придумать Переводя / (/dev/sda1) в ro мы и tmp переводить в ro? Начал оформлять скрипт.. и fsarchiver заругался. ну, я не стал ничего придумывать просто смонтировал /dev/shm на /tmp. Если у вас достаточно оперативной памяти (у меня 8gb), то всё пройдёт гладко в этом плане (перевод sda1 в ro + savefs).
[Ответ]
Hip-Hop 23:11 29.04.2011
Ну, провел испытания. всё тип-топ В самом простом варианте это выглядит так:
cp -r /tmp /home/tmp
mount -t tmpfs /dev/shm /tmp
cp -r /home/tmp /tmp
mount -o remount,acl,user_xattr,ro /dev/sda1
mount -o remount,acl,user_xattr,ro /dev/sda5
mount -o ro,acl,user_xattr /dev/sda7 /mnt
mount --bind /var /mnt
возвращаем таблицу на другой диск (если он сломался ) sfdisk /dev/sdX (тут проверка должна быть на нужный нам диск) < part.table
далее fsarchiver restfs $backup.fsa id=$a,dist=$b
dd if=mbr.backup of=/dev/sdX (ну, какой он у нас в системе)
У меня backup-ы сохраняются на raid. Я легко могу загрузиться с live-системы и восстановить систему взяв нужный backup c raid-раздела.
[Ответ]
Hip-Hop 22:22 01.05.2011
Кстати о птичках. Все не так просто... поставил в cron этот скрипт с логом ошибок (0 5 * * 7 /backup/fsbackup.sh 2> /backup/backuperrors.log)
и получил:
+ back_prog=/usr/sbin/fsarchiver
+ back_dir=/backup
++ /bin/date +%F-%T
+ today=2011-05-01-05:00:01
+ log_dir=/var/log/
+ cp -r /tmp /home/tmp
+ mount -t tmpfs /dev/shm /tmp
+ cp -r /home/tmp /tmp
+ mount -o remount,acl,user_xattr,ro /dev/sda1
mount: / is busy
+ mount -o remount,acl,user_xattr,ro /dev/sda5
+ mount -o ro, /dev/sda7 /mnt
+ mount -o remount,ro,acl,user_xattr /dev/sda7
+ mount --bind /var /mnt
то-есть, на тот момент (5 часов утра в воскресенье) перемонтировать / в ro фиг получилось [Ответ]
Xelas 15:22 06.05.2011
не понятен глубинный смысл бэкапа /var каждый раз. достаточно раз в год в ручную. надо еще проверить - система может будет работать при отмаунченом var. А то отмаунтить его к чертям (еслит он на другом разделе ) и бэкапить полностью раздел.
[Ответ]
Hip-Hop 21:15 06.05.2011
Сообщение от Xelas:
не понятен глубинный смысл бэкапа /var каждый раз.
Ну, а чё у нас может быть в var к примеру?
Сообщение от Xelas:
надо еще проверить - система может будет работать при отмаунченом var.
заработает и без var, но в аварийном режиме
Сообщение от Xelas:
А то отмаунтить его к чертям (еслит он на другом разделе ) и бэкапить полностью раздел.
сделать umount тоже нельзя. раздел будет 'is busy' при попытке.
[Ответ]