Quantcast
Channel: General Help - FreePBX Community Forums
Viewing all articles
Browse latest Browse all 12609

Full backup on bootable disk

$
0
0

@comdif wrote:

Dear all,

I'm working on a script to hot backup full disk on a new bootable disk.

  • One sata disk is in the server with original Freepbx install with 3 partitions /boot /root and swap disk is SDA
  • I plug a second disk on USB port recognized as SDB (this is a usual scenario)

I have make a script to upload on / , chmod 777 and run

echo "# MAKE EMPTY DISK #"
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1

echo "# MAKE PARTITION TABLE #"
sudo parted -s /dev/sdb mktable msdos

echo "# CREATE PARTITIONS BOOT #"
sudo parted -s /dev/sdb mkpart primary ext4 0% 350M
sudo parted -s /dev/sdb set 1 boot on

echon"# CREATE PARTITIONS SWAP #"
sudo parted -s /dev/sdb mkpart primary linux-swap 350MB 1GB
#
echo "# CREATE PARTITIONS ROOT #"
sudo parted -s /dev/sdb mkpart primary ext4 1GB 100%

echo "# FORMAT PARTITIONS #"
sudo mkfs.ext4 /dev/sdb1
sudo mkswap /dev/sdb2
sudo mkfs.ext4 /dev/sdb3

echo "############################################"
echo "################ QUESTION ? ################"
echo "#################### ! #####################"
echo "########## SHOW DISK INFORMATIONS ##########"
sudo fdisk -l
echo "Check if you can see the 3 sdb partitions above, if yes enter y and the backup process will start"

read -p "If you can see sdb partitions above, enter Y or y to continu otherwise press N or n to exit " -n 1 -r
if [[ $REPLY =~ ^[Nn]$ ]]
then
echo ''
echo 'Cancelled'
exit
fi
echo "# MOUNT PARTITIONS #"
sudo mkdir /mnt/target
sudo mount /dev/sdb3 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sdb1 /mnt/target/boot/

echo "# STOP ASTERISK AND MYSQL #"
sudo amportal stop
sudo /etc/init.d/mysql stop

echo "# CLEAN AND EMPTY LOGS #"
rm /var/log/*.0
rm /var/log/*.1
rm /var/log/*.gz
rm /var/log/*.tgz
rm /var/log/*/*.0
rm /var/log/*/*.1
rm /var/log/*/*.2
rm /var/log/*/*.3
rm /var/log/*/*.4
rm /var/log/*/*.5
rm /var/log/*/*.6
rm /var/log/*/*.7
rm /var/log/*/*.8
rm /var/log/*/*.9
rm /var/log/*/*.gz
rm /var/log/*/*.tgz

for i in find /var/log/ -name '*'
do
cat /dev/null > $i
done

echo "# READY FOR BACKUP IT WILL START IN 5 Seconds #"
sleep 5

sudo rsync -axu --progress / /boot /mnt/target

echo "# BACKUP DONE FIX fstab and grub UUID - REMOVE network cards Fixed MAC #"
sleep 2

sda1u=$(lsblk -no NAME,UUID /dev/sda1 | awk {'print $2'})
sdb1u=$(lsblk -no NAME,UUID /dev/sdb1 | awk {'print $2'})
sda2u=$(lsblk -no NAME,UUID /dev/sda2 | awk {'print $2'})
sdb2u=$(lsblk -no NAME,UUID /dev/sdb2 | awk {'print $2'})
sda3u=$(lsblk -no NAME,UUID /dev/sda3 | awk {'print $2'})
sdb3u=$(lsblk -no NAME,UUID /dev/sdb3 | awk {'print $2'})

sudo sed -i s/$sda1u/$sdb1u/ /mnt/target/etc/fstab

sudo sed -i s/$sda2u/$sdb3u/ /mnt/target/etc/fstab

sudo sed -i s/$sda3u/$sdb2u/ /mnt/target/etc/fstab

sudo sed -i s/$sda2u/$sdb3u/ /mnt/target/boot/grub/grub.conf

sudo sed -i s/HWADDR=.*// /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/^[ \t]*$/d" /etc/sysconfig/network-scripts/ifcfg-eth0
sudo sed -i s/HWADDR=.*// /etc/sysconfig/network-scripts/ifcfg-eth1
sed -i "/^[ \t]*$/d" /etc/sysconfig/network-scripts/ifcfg-eth1

unlink /mnt/target/etc/udev/rules.d/70-persistent-net.rules

echo "# COPY MBR #"
dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1

echo "# FINISH NEXT STEP IS TO MANUALY ENTER the COMMAND #"
echo " grub "
echo "Then press enter "
echo "and past the following code: "
echo "#######################"
echo "device (hd0) /dev/sda"
echo "device (hd1) /dev/sdb"
echo "root (hd0,0)"
echo "setup (hd0)"
echo "root (hd1,0)"
echo "setup (hd1)"
echo "quit"
echo "#######################"
echo " press enter and you can shutdown and reboot with new disk "


The problem is the end must be done by hand in the grub CLI
and I would like to send the grub CLI commands in the shell script, is it possible ?

Also my side all tests are successful but I have friends reporting some Kernel panic on new disk
with:
mount: you must specify the filesystem type
kernel panic not syncing pid 1 comm init not tainted 2.6.32-431.el6.x86_64 #1

Any idea ? I realy whant to setup an universal script to clone disk

Posts: 3

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 12609

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>