подскажите пожалуйста,надо сделать резервную копию,для того чтобы в случае моих "экспериментов",можно было легко восстановить систему и не потерять настройки сети,программ,внешний вид и т.д.
просто,хочется дальше учиться работать в Suse, но меня сейчас останавливает страх потерять свое и начинать с нуля...
что надо резервировать и как это делать?
P.S.понимаю,что можно все прочитать в манах и найти в гугле,но ведь для этого и есть этот форум,чтобы задать непосредственно здесь вопрос...
Как сделать резервную копию и что именно надо резервировать?
Чей_туфля?, не уверен насчёт восстановления системы с нуля, но в самом простом случае сохранить все (ну, или почти все) сделанные вами настройки можно архивированием каталогов /etc и /home/ВАШ_ПОЛЬЗОВАТЕЛЬ.
Чей_туфля?, вручную? Тогда согласен с Lupo Alberto, тупо скопировать директории /etc, $HOME, /usr (опционально доставленый софт после установки системы)
Если автоматизировать, то можно написать небольшой скриптик на bash и запихать его в крон.
и ,если скопировать эти три папки,то потом я смогу(в случае неприятностей) поставить заново систему ,накатить эти три папки и у меня останутся мои настройки сети,установленные программы и настройки,настройки рабочих столов?
Чей_туфля?, как вариант использовать yast-backup. Центр управления - система - резервирование системы, ну а то что копировать уже сказали выше =)
и ,если скопировать эти три папки,то потом я смогу(в случае неприятностей) поставить заново систему ,накатить эти три папки и у меня останутся мои настройки сети,установленные программы и настройки,настройки рабочих столов?
Можете сделать образ hdd, с помощью clonezilla к примеру. Или опять же все восстановить через Центр управления - система - восстановление системы
Скрипт принимает в качестве параметра путь к файлу или каталогу, после чего создает архивный файл, имя которого содержит текущую дату. Например, для архивирования каталога beoserver скрипту arc необходимо передать путь к нему, после чего будет сформирован сжатый архив, имеющий имя приблизительно следующего вида: beoserver.20040321-014844.tgz
#!/bin/sh
#arc.sh
tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1
exit $?
создайте этот скриптик , дайте ему права на исполнение и архивируйте на здоровье..
подскажите пожалуйста,надо сделать резервную копию,для того чтобы в случае моих "экспериментов",можно было легко восстановить систему и не потерять настройки сети,программ,внешний вид и т.д.
просто,хочется дальше учиться работать в 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 помогает.
Способ представленный drBatty наверное самый верный и понятный)
Но всё же мне иногда хочется gui интерфейсов. Мб полный бэкап системы этой прогой делать не целесообразно..
Но отдельные папки как мне кажется удобно, прога называется luckyBackup со скринами можно ознакомится тут:
http://luckybackup.sourceforge.net/screenshots.html
rpm можно найти в репозиториях.
[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?
у меня там много видео накопилось,а резервировать его желания нет,да и вес архива увеличивается...
а как прописать исключения
--exclude FILE
exclude file FILE
-X, --exclude-from FILE
exclude files listed in FILE
подробности в info tar.
[quote=Чей_туфля?]а как прописать исключения
--exclude FILE
exclude file FILE
-X, --exclude-from FILE
exclude files listed in FILE
подробности в info tar.[/quote]
извини но не могу разобраться :(
tar параметры --exclude-from=/etc/nobackup
и содержания файла nobackup(название файла зависит от вашей фантазии, только не переусердствуйте)
/home/useraname/Downloads
или относительные пути, так же можно указать файлы которые не должны попасть в бэкап.
извини но не могу разобраться sad
Пример:
Есть каталог Desktop/tmp
lupo@gentoo-laptop Desktop % ls -1 tmp [gentoo-laptop][10:49]
fonts.tar
grub.cfg
test/
Архивируем его, за исключением входящего в него test
lupo@gentoo-laptop Desktop % tar --exclude test -cf test.tar tmp/ [gentoo-laptop][10:49]
Проверяем, что попало в ахрив
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.
Можно, создав предварительно (с помощью скрипта или руками) файл со всеми исключениями и использовать опцию -X, --exclude-from FILE
список файлов может составить команда find
она умеет несколько десятков критериев, в том числе регулярные выражения, права, время, и даже анализ текста и распознавание образов.
список файлов может составить команда find
как вариант еще бекапить по расширению, т.е. сделать белый список тех или иных типов файлов и их бекапить.
как вариант еще бекапить по расширению, т.е. сделать белый список тех или иных типов файлов и их бекапить.
а ещё можно отсортировать файлы перед бекапом по расширению. причём не по алфавиту, а по группам, например js, php, cpp,h файлы рядом - они очень похожи. так делает винрар, но в нём не слишком-то понастраиваешь...
Я периодически пользуюсь следующей парой скриптов, позволяющих сделать архив системы, что бы в случае необходимости простым разархивированием всё вернуть в первоначальное состояние:
Показать
mkstage4.sh
#! /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
#!/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