Backup, Recuperação e Chroot
Script para Backup de Sistema, caso você queira experimentar outras distros e retornar ao padrão rapidamente. Tem as opções de backup em arquivo único, múltiplo e restauração. Usei como base o script do Alex Marques: https://www.vivaolinux.com.br/script/Menu-em-Shell-Script
Descrição
Script para Backup de Sistema, caso você queira experimentar outras distros e retornar ao padrão rapidamente. Tem as opções de backup em arquivo único, múltiplo e restauração. Usei como base o script do Alex Marques: https://www.vivaolinux.com.br/script/Menu-em-Shell-Script
#!/bin/bash
# Script de Backup de sistema
# v0.2
# Criado por Enio Galli Ferlin
#
x="teste"
menu ()
{
while true $x != "teste"
do
clear
echo "================================================"
echo "Olá! Esse é o Script de Backup/Restauração do Sistema, e deve ser usado com Sudo ou Root!"
echo "Escolha pelo número uma das opções a seguir:"
echo ""
echo "1)Backup do Sistem em arquivo único"
echo ""
echo "2)Backup do Sistema com divisão de arquivos"
echo ""
echo "3)Restaurar o Sistema"
echo ""
echo "4)Chroot do Sistema"
echo ""
echo "5)Sair"
echo ""
echo "================================================"
read x
echo "Opção informada ($x)"
echo "================================================"
case "$x" in
1)
echo "Informe o diretório que irá gerar o Backup"
read LOCATION
echo "Informe o local de destino do arquivo de Backup"
read DESTINATION
cd "$LOCATION"
tar -cvpzf "$DESTINATION"/backup.tar.gz \
--exclude=proc \
--exclude=tmp \
--exclude=mnt \
--exclude=dev \
--exclude=home \
--exclude=sys \
--exclude=run \
--exclude=media \
--exclude=var/log * &&
echo "Backup realizado com sucesso!"
sleep 3
echo "================================================"
;;
2)
echo "Informe o diretório que irá gerar o Backup"
read LOCATION
echo "Informe o local de destino do(s) arquivo(s) de Backup"
read DESTINATION
cd "$LOCATION"
tar -cvpzf "$DESTINATION"/backup.tar.gz \
--exclude=proc \
--exclude=tmp \
--exclude=mnt \
--exclude=dev \
--exclude=home \
--exclude=sys \
--exclude=run \
--exclude=media \
--exclude=var/tmp/portage/* \
--exclude=var/cache/distfiles/* \
--exclude=var/cache/binpkgs/* \
--exclude=var/log * | split -d -b 400m - backup.tar.gz &&
echo "Backup de múltiplos arquivos realizado com sucesso!"
sleep 3
echo "================================================"
;;
3)
echo "Informe o local do arquivo de Backup"
read LOCATION2
echo "Informe o local onde irá descompactar o Backup"
read DESTINATION2
tar -xvpzf "$LOCATION2" -C "$DESTINATION2" --numeric-owner &&
cd "$DESTINATION2"
mkdir proc sys mnt media run tmp dev home &&
echo "Restauração de sistema realizada com sucesso!"
echo "Agora recupere o grub para iniciar o sistema!"
sleep 5
echo "================================================"
;;
4)
echo "Realizando chroot do sistema recuperado"
echo "Informe o local onde esta o Sistema"
read DESTINATION2
mount --types proc /proc "$DESTINATION2"/proc
mount --bind /dev "$DESTINATION2"/dev
mount --make-rslave "$DESTINATION2"/dev
mount --bind /sys "$DESTINATION2"/sys
mount --make-rslave "$DESTINATION2"/sys
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
cp -L /etc/resolv.conf "$DESTINATION2"/etc/resolv.conf
chroot "$DESTINATION2" /bin/bash
echo "================================================"
;;
5)
echo "saindo..."
sleep 1
clear;
exit;
echo "================================================"
;;
*)
echo "Opção inválida!"
esac
done
}
menu