我正在尝试使用openSUSE 11.3上的最基本的工具(在这种情况下是bash,fdisk,tar和grub遗留)来创build一个裸机备份系统。
以下是我的脚本的工作stream程:
backup.sh:
restore.sh:
我最近注意到openSUSE(虽然我确定它与发行版无关)在/etc/fstab和/boot/grub/menu.lst中有不同的输出,更准确地说,分区名称是例如“ / dev / disk / by-id / numbers-brandname-morenumbers-part2 “而不是” / dev / sda2 “ – 但它基本上是一个简单的符号链接。
我的问题是:
如果以前是不是,你知道一种方法来在文本文件中dynamicreplace这些符号链接? 我试过这个脚本,但只适用于文件以符号链接描述(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
我一直在谷歌find解决这个问题,所以我希望在这里的一些成员可以帮助我。
谢谢。
我build议你使用一个排除或包含列表来tar。 只备份必要的目录,并避免/ dev / proc / mnt / media等…
cd / tar cvzf backup.tar.gz --exclude='dev/*' --exclude='proc/*' ... *