script-backup-proxmox-sh
#!/bin/bash
RED=’\033[1;31m’
GREEN=’\033[1;32m’
CYAN=’\033[1;36m’
NC=’\033[0m’
echo -e «${GREEN}_____________________________________»
echo -e «${GREEN}>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<«
echo -e «${GREEN}>>>>>> Backup-proxmox_Infojrit <<<<<<«
echo -e «${GREEN}>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<«
echo -e «${GREEN}____________🔧🔧🔧___________________»
echo -e «»
echo -e «${RED}Antes recuerda:${NC}»
echo -e «${CYAN}lsblk ${GREEN}–> Para localizar el disco»
echo -e «${CYAN}mkdir /media/usb2 ${GREEN}–> Crear la carpeta por ejemplo»
echo -e «${CYAN}mount /dev/xxx /media/usb2 ${GREEN}–> Montar el disco en la carpeta por ejemplo»
echo -e «${CYAN}————————————————————–«
echo -e «${RED}Ingrese directorio destino del backup»
echo -e «${CYAN}Ejemplo /media/usb2/»:
echo -e «${CYAN}————————————————————–${NC}»
read -p «> » dir
if [ ! -d «$dir» ]; then
echo -e «${RED}Error: El directorio de destino $dir no existe»
exit 1
fi
zap=$(echo «$dir/$(hostname)-backup-$( date +»%Y-%m-%d-%H_%M»).tar.gz»)
mkdir /tmp/proxmox-backup/;
echo -e -e «${CYAN}\nCopiando archivos de configuración etc…📦\n»
dir1=$(cp -r /etc/pve /tmp/proxmox-backup/ 2>0)
dir2=$(cp -r /etc/network/interfaces /tmp/proxmox-backup/ 2>0)
dir3=$(cp -r /etc/hosts /tmp/proxmox-backup/ 2>0)
dir4=$(cp -r /etc/resolv.conf /tmp/proxmox-backup/ 2>0)
dir5=$(cp -r /etc/fstab /tmp/proxmox-backup/ 2>0)
dir6=$(cp -r /etc/vzdump.conf /tmp/proxmox-backup/ 2>0)
dir7=$(cp -r /etc/corosync/ /tmp/proxmox-backup/ 2>0)
if [ -e «/etc/pve» ]; then
echo -e -e «${GREEN}\n[]El directorio /etc/pve existe copiando –> /tmp/proxmox-backup»
$dir1
else
echo -e -e «${RED}\n___El directorio /etc/pve no existe___»
fi
sleep 1
if [ -e «/etc/network/interfaces» ]; then
echo -e «${GREEN}[]El directorio /etc/network/interfaces existe copiando –> /tmp/proxmox-backup»
$dir2
else
echo -e «${RED}El directorio /etc/network/interfaces no existe«
fi
sleep 1
if [ -e «/etc/hosts» ]; thenecho -e "${GREEN}[*]El directorio /etc/hosts existe copiando --> /tmp/proxmox-backup" $dir3
else
echo -e «${RED}El directorio /etc/hosts no existe«
fi
sleep 1
if [ -e «/etc/resolv.conf» ]; then
echo -e «${GREEN}[]El directorio /etc/resolv.conf existe copiando –> /tmp/proxmox-backup»
$dir4
else
echo -e «${RED}El directorio /etc/resolv.conf no existe«
fi
sleep 1
if [ -e «/etc/fstab» ]; then
echo -e «${GREEN}[]El directorio /etc/fstab existe copiando –> /tmp/proxmox-backup»
$dir5
else
echo -e «${RED}El directorio /etc/fstab no existe«
fi
sleep 1
if [ -e «/etc/vzdump.conf» ]; then
echo -e «${GREEN}[]El directorio /etc/vzdump.conf existe copiando –> /tmp/proxmox-backup»
$dir6
else
echo -e «${RED}El directorio /etc/vzdump.conf no existe«
fi
sleep 1
if [ -e «/etc/corosync» ]; then
echo -e -e «${GREEN}[]El directorio /etc/corosync existe copiando –> /tmp/proxmox-backup\n»
$dir7
else
echo -e -e «${RED}El directorio /etc/corosync no existe\n»
fi
sleep 1
echo «___________________________________________________________»
echo -e «${GREEN}1 – 🔒 Quieres cifrar el contenido con OpenSSL?»;
echo -e «${GREEN}2 – No es necesario»
echo «___________________________________________________________»
read -p «> » opcion;
case $opcion in
1)
sleep 1
echo -e «${CYAN}Paso 1, Comprimir\n${GREEN}»
comprimir=$(tar czvf $zap –absolute-names /tmp/proxmox-backup/);
sleep 1
openssl enc -aes-256-cbc -pbkdf2 -salt -in «$zap» -out «$zap.enc»;
echo -e «${CYAN}Paso 2, cifrar con la clave generada.\n${NC}»
sleep 1
echo -e «${CYAN}Paso 3, Recuerde la contraseña\n\n${GREEN}Para descifrar\nopenssl enc -d -aes-256-cbc -pbkdf2 -in $zap.enc -out $zap\n\n${NC}»
rm -rf $zap 2>0;
rm -rf /tmp/proxmox-backup/ 2>0;
sleep 5
echo -e -e «${CYAN}Paso 4, Eliminar los archivos temporales\n${GREEN}»
ls -las $dir
sleep 3;;
2)
comprimir=$(tar czvf $zap –absolute-names /tmp/proxmox-backup/);
rm -rf /tmp/proxmox-backup/ 2>0;
echo -e -e «${RED}Eliminando la carpeta temporal\n»
ls -las $dir
sleep 3
exit 0 ;;
esac