LinuxForum.Fans
Тема

Как сделать резервную копию и что именно надо резервировать?

Автор: u___________7 18 сообщений 11782 просмотров
#115434

подскажите пожалуйста,надо сделать резервную копию,для того чтобы в случае моих "экспериментов",можно было легко восстановить систему и не потерять настройки сети,программ,внешний вид и т.д.
просто,хочется дальше учиться работать в Suse, но меня сейчас останавливает страх потерять свое и начинать с нуля...
что надо резервировать и как это делать?

P.S.понимаю,что можно все прочитать в манах и найти в гугле,но ведь для этого и есть этот форум,чтобы задать непосредственно здесь вопрос...

#115435

Чей_туфля?, не уверен насчёт восстановления системы с нуля, но в самом простом случае сохранить все (ну, или почти все) сделанные вами настройки можно архивированием каталогов /etc и /home/ВАШ_ПОЛЬЗОВАТЕЛЬ.

#115437

Чей_туфля?, вручную? Тогда согласен с Lupo Alberto, тупо скопировать директории /etc, $HOME, /usr (опционально доставленый софт после установки системы)
Если автоматизировать, то можно написать небольшой скриптик на bash и запихать его в крон.

#115438

и ,если скопировать эти три папки,то потом я смогу(в случае неприятностей) поставить заново систему ,накатить эти три папки и у меня останутся мои настройки сети,установленные программы и настройки,настройки рабочих столов?

#115439

Чей_туфля?, как вариант использовать yast-backup. Центр управления - система - резервирование системы, ну а то что копировать уже сказали выше =)

Чей_туфля? написал:
и ,если скопировать эти три папки,то потом я смогу(в случае неприятностей) поставить заново систему ,накатить эти три папки и у меня останутся мои настройки сети,установленные программы и настройки,настройки рабочих столов?

Можете сделать образ hdd, с помощью clonezilla к примеру. Или опять же все восстановить через Центр управления - система - восстановление системы

#115475

Скрипт принимает в качестве параметра путь к файлу или каталогу, после чего создает архивный файл, имя которого содержит текущую дату. Например, для архивирования каталога beoserver скрипту arc необходимо передать путь к нему, после чего будет сформирован сжатый архив, имеющий имя приблизительно следующего вида: beoserver.20040321-014844.tgz

text

   #!/bin/sh 
   #arc.sh
   tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1 
   exit $?

создайте этот скриптик , дайте ему права на исполнение и архивируйте на здоровье..

#115762
Чей_туфля? написал:
подскажите пожалуйста,надо сделать резервную копию,для того чтобы в случае моих "экспериментов",можно было легко восстановить систему и не потерять настройки сети,программ,внешний вид и т.д.
просто,хочется дальше учиться работать в Suse, но меня сейчас останавливает страх потерять свое и начинать с нуля...
что надо резервировать и как это делать?

[console]cd /
mkdir -p backup
tar cjvvf backup/archiv.tbz bin/ home/ sbin/ usr/ boot/ etc/ lib/ opt/ root/ srv/ var/[/console]

восстановление:
[console]cd /
tar xvvf backup/archiv.tbz[/console]

только загрузчик так не сохраняется... ну и разные диски в /mnt & /media
против rm -rf помогает.

#115781

Способ представленный drBatty наверное самый верный и понятный)
Но всё же мне иногда хочется gui интерфейсов. Мб полный бэкап системы этой прогой делать не целесообразно..
Но отдельные папки как мне кажется удобно, прога называется luckyBackup со скринами можно ознакомится тут:
http://luckybackup.sourceforge.net/screenshots.html

rpm можно найти в репозиториях.

#119241
drBatty написал:

[console]cd /
mkdir -p backup
tar cjvvf backup/archiv.tbz bin/ home/ sbin/ usr/ boot/ etc/ lib/ opt/ root/ srv/ var/[/console]

а как прописать исключения,например в home/user исключить папку downloads?
у меня там много видео накопилось,а резервировать его желания нет,да и вес архива увеличивается...

#119242
Чей_туфля? написал:
а как прописать исключения

--exclude FILE
exclude file FILE

-X, --exclude-from FILE
exclude files listed in FILE

подробности в info tar.

#119267
drBatty написал:
[quote=Чей_туфля?]а как прописать исключения

--exclude FILE
exclude file FILE

-X, --exclude-from FILE
exclude files listed in FILE

подробности в info tar.[/quote]

извини но не могу разобраться :(

#119272

tar параметры --exclude-from=/etc/nobackup

и содержания файла nobackup(название файла зависит от вашей фантазии, только не переусердствуйте)

/home/useraname/Downloads

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

#119279
Чей_туфля? написал:
извини но не могу разобраться sad

Пример:
Есть каталог Desktop/tmp

text

lupo@gentoo-laptop Desktop % ls -1 tmp                                                                              [gentoo-laptop][10:49]
fonts.tar
grub.cfg
test/

Архивируем его, за исключением входящего в него test

text

lupo@gentoo-laptop Desktop % tar --exclude test -cf test.tar tmp/                                                   [gentoo-laptop][10:49]

Проверяем, что попало в ахрив

text

lupo@gentoo-laptop Desktop % tar tf test.tar                                                                        [gentoo-laptop][10:50]
tmp/
tmp/fonts.tar
tmp/grub.cfg

Но данный пример достаточно примитивен, он не учитывает наличие вложенных каталогов с одинаковыми именами.
Можно, создав предварительно (с помощью скрипта или руками) файл со всеми исключениями и использовать опцию -X, --exclude-from FILE
Ещё могу погу посоветовать rdiff-backup, у него настройки гораздо гибче (но сложнее для первоначального) изучения, чем у обычного tar.

#119327
Lupo Alberto написал:
Можно, создав предварительно (с помощью скрипта или руками) файл со всеми исключениями и использовать опцию -X, --exclude-from FILE

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

#119328
drBatty написал:
список файлов может составить команда find

как вариант еще бекапить по расширению, т.е. сделать белый список тех или иных типов файлов и их бекапить.

#119334
i2ks написал:
как вариант еще бекапить по расширению, т.е. сделать белый список тех или иных типов файлов и их бекапить.

а ещё можно отсортировать файлы перед бекапом по расширению. причём не по алфавиту, а по группам, например js, php, cpp,h файлы рядом - они очень похожи. так делает винрар, но в нём не слишком-то понастраиваешь...

#119343

Чей_туфля?,
еще один вариант - это использовать fsbackup

#119345

Я периодически пользуюсь следующей парой скриптов, позволяющих сделать архив системы, что бы в случае необходимости простым разархивированием всё вернуть в первоначальное состояние:

Показать

mkstage4.sh
text

#! /bin/bash
##  Backup script for Gentoo Linux
# Last modification 2008.11.09
# Added check 'qlist' command exist and run saving list of installed packages with your USE-flags
# Added "new" excluded dir - /usr/src, /usr/portage
basename=$(basename $0)
# these are the commands we actually need for the backup
command_list=(cut date dd echo find grep hostname mount mkdir qlist sfdisk sh split tar umount uname which)
# verify that each command we use exists. if one can't be found use $PATH and make a suggestion if possible.
for command in ${command_list[@]}; do
        if [ ! -x "$(which $command 2>&1)" ]; then
                echo -e "\nERROR: $command not found! "
                base=$(basename $command)
                if [ "$(which $base 2>&1 | grep "no $(basename $command) in")" != "" ]; then
                        echo -e "ERROR: $base is not in your \$PATH."
                fi
                exit -1
        fi
done
#
###############################################################################################################
##  This is a script to create a custom stage 4 tarball (System and boot backup)
##  Please check the options and adjust to your specifics.

echo "-=- Starting the Backup Script..." echo "-=-"

echo "-=- Setting the variables..." ## Where MBR is written. disk_with_mbr="/dev/sda"

## The location of the stage 4 tarball. ## Be sure to include a trailing / patch_to_backup=/home/users/backup/ stage_for_location=$(date +%F)_system if [ ! -d ${patch_to_backup}${stage_for_location} ]; then if mkdir -p ${patch_to_backup}${stage_for_location}; then backup_dir=${patch_to_backup}${stage_for_location}/ ## The name of the stage 4 tarball. archive=${backup_dir}$(hostname)-stage4.tar.bz2 echo "-=- Backup directory ${backup_dir} created..." else echo "-=- Can't create ${backup_dir}. Please check ..." exit 1 fi else if [ -f ${archive} ]; then echo "-=- Backup file ${archive} exist, nothing to do..." exit 1 fi fi ## The name of the stage 4 tarball. ##archive=${backup_dir}$(hostname)-stage4.tar.bz2

## Directories/files that will be exluded from the stage 4 tarball. ## ## Add directories that will be recursively excluded, delimited by a space. ## Be sure to omit the trailing / dir_excludes=" /mnt/* /dev /lost+found /proc /sys /tmp /home /usr/src /var/tmp /var/run" ## ## Add files that will be excluded, delimited by a space. ## You can use the * wildcard for multiple matches. ## There should always be $archive listed or bad things will happen. file_excludes="${archive}" ## ## Combine the two *-excludes variables into the $excludes variable excludes="$(for i in ${dir_excludes}; do if [ -d $i ]; then \ echo -n " --exclude=$i/*"; fi; done) $(for i in ${file_excludes}; do \ echo -n " --exclude=$i"; done)"

## The options for the stage 4 tarball. tar_options="${excludes} --create --absolute-names --preserve-permissions --bzip2 --verbose --totals --file"

echo "-=- Done!" echo "-=-"

## Mounting the boot partition echo "-=- Mounting boot partition, then sleeping for 5 seconds..." mount /boot sleep 5 echo "-=- Done!" echo "-=-"

## Creating a copy of the boot partition (copy /boot to /bootcpy). ## This will allow the archiving of /boot without /boot needing to be mounted. ## This will aid in restoring the system. echo "-=- Copying /boot to /bootcpy ..." cp -R /boot /bootcpy echo "-=- Done!" echo "-=-" echo "-=- Copying kernel config to /bootcpy ..." zcat /proc/config.gz > /bootcpy/config_$(uname -r) echo -=- Done! echo -=- echo "-=- Write list of installed packages ..." qlist -CU > ${backup_dir}installed_packages.txt echo "-=- Done!" ## echo "-=- Write README.txt ..." echo "For fix "Warning: unable to open an initial console."" >> ${backup_dir}Readme.txt echo "run /usr/local/sbin/fix_console.sh" >> ${backup_dir}Readme.txt echo "-=- Done!" ## Unmounting /boot echo "-=- Unmounting /boot then sleeping for 5 seconds..." umount /boot sleep 5 echo "-=- Done!" echo "-=-"

## Creating the stage 4 tarball. echo "-=- Creating custom stage 4 tarball \=\=\> ${archive}" echo "-=-" echo "-=- Running the following command:" echo "-=- tar ${tar_options} ${archive} /" tar ${tar_options} ${archive} /; echo "-=- Done!"

## Uncomment this portion to encrypt the stage4 using asymmetric encryption with GnuPG ## To get a list of available ciphers on your machine do #gpg --version ## Note: only aes aes192 aes256 and twofish should be used for large files (~1Gig & larger) ## To Restore: (cat together if split) and #gpg stage4.tar.bz2.gpg #echo -=- Starting Encryption Process usung asymmetric encryption with a public key -=- #cd $stage4Location #gpg --encrypt --batch --recipient [MY_PUB_KEY] --cipher-algo twofish --output $archive.gpg $archive #rm $archive #archive=$stage4Location$(hostname)-stage4.tar.bz2.gpg

## Uncomment this portion to encrypt the stage4 using symmetric encryption with GnuPG ## ## To get a list of ciphers on your machine do #gpg --version ## Note: only aes aes192 aes256 and Twofish should be used for large files (~1 gig & larger) ## To Restore: (cat together if split) and #gpg stage4.tar.bz2.gpg #echo -=- Starting Encryption Process usung symmetric encryption with a password -=- #cd $stage4Location #pass=PLEASE_CHANGE_ME_I_BEG_YOU! #echo $pass | gpg --batch --cipher-algo twofish --passphrase-fd 0 --symmetric $archive #rm $archive #archive=$stage4Location$(hostname)-stage4.tar.bz2.gpg

## Split the stage 4 tarball in cd size tar files. ## To combine the tar files after copying them to your ## chroot do the following: "cat *.tar.bz2 >> stage4.tar.bz2". ## or if encrypted do the following: "cat *.tar.bz2.gpg >> stage4.tar.bz2.gpg". ## Uncomment the following lines to enable this feature. #echo -=- Splitting the stage 4 tarball into CD size tar files... #split --bytes=700000000 ${archive} ${archive}. #echo -=- Done!

## Removing the directory /bootcpy. ## You may safely uncomment this if you wish to keep /bootcpy. echo "-=- Removing the directory /bootcpy ..." rm -rf /bootcpy echo "-=- Done!" echo "-=-" ## ## To store partition table info: ## The first of those saves the mbr and the second will store all partition info (including logical partitions, ## which aren't part of the mbr). echo "-=- Store MBR and partition table info ..." dd if=${disk_with_mbr} of=${backup_dir}mbr.save count=1 bs=512 sfdisk -d ${disk_with_mbr} > ${backup_dir}partitions.save echo "-=- Done!" echo "-=-" ## This is the end of the line. echo "-=- The Backup Script has completed!"

fix_console.sh

text

#!/bin/sh
# Если в консоли появилась такая запись 
# Warning: unable to open an initial console.
mkdir /mnt/fixit
mount --bind / /mnt/fixit 
rm -fr /mnt/fixit/dev/* #насчёт этого не уверен, что обязательно надо делать
cd /mnt/fixit/dev
mknod -m 600 console c 5 1 && chown root:tty console
mknod -m 600 initctl p
mknod -m 666 null c 1 3 
mv -f /etc/issue.devfix /etc/issue 
cd /
umount /mnt/fixit
rmdir /mnt/fixit
reboot

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