Я пытаюсь создать систему резервного копирования с использованием самых простых инструментов, доступных в openSUSE 11.3 (в данном случае: bash, fdisk, tar и grub legacy)
Вот рабочий процесс для моих скриптов:
backup.sh:
restore.sh:
Недавно я заметил, что openSUSE (хотя я уверен, что он не имеет ничего общего с дистрибутивом) имеет другой вывод в / etc / fstab и /boot/grub/menu.lst, точнее, например, имя раздела "/ dev / disk / по-идентификатору / номерам-брендовым-morenumbers-part2" вместо того "/ dev / sda2"- но в основном это простая символическая ссылка.
Мои вопросы по этому поводу:
если предыдущее - нет, знаете ли вы, как заменить эти символические ссылки на лету в текстовом файле? Я пробовал этот сценарий, но работает только в том случае, если файл начинается с описания символической ссылки (в случае fstab, а не menu.lst):
### search and replace /dev/disk/by-id/... to /dev/sdx
while read oldVolume rest; do # get first element, ignore rest of line
if [[ "$oldVolume" =~ ^/dev/disk/by-id/.*(-part[0-9]*$)? ]]; then
newVolume=$(readlink $oldVolume) # replace pointer by pointee, returns "../../sdx"
echo /dev/${newVolume##*/} $rest >> TMP # format to "/dev/sdx", write line
else
echo $oldVolume $rest >> TMP # nothing to do
fi
done < $file
mv -f TMP $file # save changes
У меня возникли проблемы с поиском решения этой проблемы в Google, поэтому я надеялся, что некоторые из участников могут мне помочь.
Спасибо.
Я рекомендую вам использовать список исключения или включения в tar. Сделайте резервную копию только необходимых каталогов и избегайте / dev / proc / mnt / media и т. Д.
cd /
tar cvzf backup.tar.gz --exclude='dev/*' --exclude='proc/*' ... *