LINUX.ORG.RU
решено ФорумAdmin

бекап всей системы при помощи rsync

 , ,


4

1

очень часто делаю такое, после чего требуются восстановить некоторые файлы, частенько - системные.

Чтобы не ставить систему заново каждый раз, решил попробовать сделать и восстановить бекап. После http://help.ubuntu.ru/wiki/backup решил опробовать rsync (dd проще, быстрее в освоении, но с ним контроль версий не сделаешь).

Диск разбит на три партиции: /dev/sd5 - «/», /dev/sda9 - «/home», /dev/sda7 - «/backup». rsyncу это не нужно, ибо он копирует оперируя файлами и папками.

в терминале выполняю: rsync --archive --delete --delete-excluded --progress «/» «/backup/ubuntu/» --exclude='/backup' --exclude='/backup'

и замечаю, что /proc/kcore копируется уж больно долго, как оказалось, это память озу или озу+свап.

в связи с этим вопрос, какие файлы и директории стоит исключить, но с тем условием, что потом сможем восстановить работающую систему просто скопировав на отформатированный раздел в такой же файловой системе и указав правильные точки монтирования?

а вообще чтоб по быстрячку то загрузись с любого лайвСД линукса, примонтируй твою систему в какой нибуть каталог и таром забекапь этот каталог, тем самым у тебя не будет лишних файлов которые гнерируются при загрузке

CHIPOK ★★★ ()

Точно не стоить бекапить интерфейсы ядра: /proc /sys.
Временные файлы: /run /tmp.
/dev в современных дистрах обычно создается на лету, поэтому его бекапить не нужно.
Скорее всего стоит так же исключить временные точки монтирования: /cdrom /media /mnt.
Еще стоит выкинуть всякие ненужные файлы пользователей, вроде фильмов/музыки, .steam, .wine и т.п.

ddos3 ()
Ответ на: комментарий от ddos3

угум, самое важное в home дирректории - это .rvm для меня)

frozfox ()

Не надо исключать, просто используй rsync -x

sdio ★★★★★ ()
rsync -xrlptgoEv --progress --exclude-from=/root/spisok / root@destination_ip:/

[root@centos ~]# cat /root/spisok 
/etc/fstab
/boot/grub/grub.conf
/proc
/sys
/dev
/mnt
/media
/selinux
/var
/etc/sysconfig/network-scripts/ifcfg-eth0
dada ★★★★★ ()
Последнее исправление: dada (всего исправлений: 1)
Ответ на: комментарий от dada

-х не позволит rsync'y лезть за пределы / (в /proc, /sys, /dev, ...)
-rlptgo — заменяется одной опцией -a
-E перекрывается -p, которая в свою очередь входит в -а
-H и -S не помешает добавить

rsync -axHSv ... все что нужно для бэкапа, exclude на файлы добавить по-вкусу.

sdio ★★★★★ ()

Вот тебе скрипт, который написан по мотивам http://habrahabr.ru/post/149059/

Сохраняет разные версии одного и того же файла с возможностью восстановления из любой версии бэкапа. Бэкапить нужно на ФС, которая поддерживает hard links (то есть не на ntfs). При бэкапе дополнительное место занимают только измененные относительно последнего бэкапа файлы (для этого и нужны hard links)

#!/bin/bash

if [[ $# -ne 3 || ( "$1" != "backup" && "$1" != "restore") ]]; then
	echo "Usage: $0 [backup|restore] source destination"
	exit 1
fi

date=`date "+%Y-%m-%d-%H-%M-%S"`
SRC="$2"
DST="$3"

if [ ! -d "$SRC" ]; then
	echo "$SRC" is not a directory or does not exist
	exit 1
fi
if [ ! -d "$DST" ]; then
	echo "$DST" is not a directory or does not exist
	exit 1
fi

function rsync_backup() {
	# $1 = SRC, $2 = DST, $3 = date
	SRC="$1"
	DST="$2"
	date="$3"

	rsync --recursive --links --perms --times --group --owner --devices --specials --verbose --delete --numeric-ids \
	--exclude={/dev/*,/proc/*,/mnt/*,/media/*,/sys/*,/tmp/*,/run/*,/home/*/.gvfs,/home/*/.cache,/var/lib/pacman/sync/*,/var/cache/pacman/pkg/*,/home/*/tmp/*,/home/*/VirtualBox\ VMs,/home/*/.dbus,/swapfile,/home/*/.thumbnails,/home/*/.wine,/home/*/.davfs2/cache,/home/*/Downloads/*,/home/*/.local/share/Trash} \
	--link-dest="`readlink -f "$DST"`/Latest" \
	$SRC $DST/Processing-$date \
	&& cd $DST \
	&& mv Processing-$date $date \
	&& rm -f Latest \
	&& ln -s $date Latest
}

function rsync_restore() {
	# $1 = SRC, $2 = DST, $3 = date
	SRC="$1"
	DST="$2"
	date="$3"

	rsync --recursive --links --perms --times --group --owner --devices --specials --verbose --delete --numeric-ids \
	$SRC $DST
}

if [[ $1 == "backup" ]]; then
	rsync_backup $SRC $DST $date
fi
if [[ $1 == "restore" ]]; then
	rsync_restore $SRC $DST $date
fi

exit 0

getup ()

duplicity уже советовали?

mv ★★★★★ ()
1 мая 2015 г.
Ответ на: комментарий от amazpyel

в додачу.

Неологизм. Развивается язык. Заимствует у соседей. Живой значит.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.