Cei care aveti servere dedicate la oneprovider in special, ati patit cel putin odata ca serverul sa fie in rescue mode, fara optiunea de boot normal si iti cere sa faci reinstall.
Cand se intampla asta daca nu ai backup la bazele de date, iti poti lua adio, pentru ca procesul pentru in incepator este foarte complicat sa faca backup la bazele de date.
Acest script care trebuie rulat in consola care in principiu ar trebui sa faca:
1. face si seteaza chroot environment
2. porneste serverul de mysql
3. face backup la toate bazele de date in folderul /home/backup/rescuemode
Folderul de backup se poate schimba dupa cum doriti.
Un mic avantaj este ca face un chroot environment now pentru fiecare rulare, asta pentru a evita probleme.
Nu este testat si sper sa nu aveti nevoie . Daca aveti nevoie de ajutor sau eventuale probleme ma anuntati si vom incerca sa rezolvam problema.
Trebuie sa setati datele cu user root si paola root de la mysql.
Acesta este codul sh care trebuie sa-l rulati.
Cand se intampla asta daca nu ai backup la bazele de date, iti poti lua adio, pentru ca procesul pentru in incepator este foarte complicat sa faca backup la bazele de date.
Acest script care trebuie rulat in consola care in principiu ar trebui sa faca:
1. face si seteaza chroot environment
2. porneste serverul de mysql
3. face backup la toate bazele de date in folderul /home/backup/rescuemode
Folderul de backup se poate schimba dupa cum doriti.
Un mic avantaj este ca face un chroot environment now pentru fiecare rulare, asta pentru a evita probleme.
Nu este testat si sper sa nu aveti nevoie . Daca aveti nevoie de ajutor sau eventuale probleme ma anuntati si vom incerca sa rezolvam problema.
Trebuie sa setati datele cu user root si paola root de la mysql.
Cod:
MYSQL_USER="your_mysql_user"
MYSQL_PASSWORD="your_mysql_password"
Acesta este codul sh care trebuie sa-l rulati.
Cod:
#!/bin/bash
# Define MySQL root user and password
MYSQL_USER="your_mysql_user"
MYSQL_PASSWORD="your_mysql_password"
# Define the backup directory
BACKUP_DIR="/home/backup/rescuemode"
# Generate a unique CHROOT_PATH
CHROOT_PATH="/tmp/chroot_$(date +%s)"
# Function to start MySQL inside the chroot environment
start_mysql() {
chroot $CHROOT_PATH /bin/bash -c "systemctl start mysql"
}
# Function to back up all databases inside the chroot environment
backup_databases() {
local databases
databases=$(chroot $CHROOT_PATH /bin/bash -c "mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'SHOW DATABASES;' | grep -Ev '(Database|information_schema|performance_schema|mysql)'")
for db in $databases; do
chroot $CHROOT_PATH /bin/bash -c "mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > $BACKUP_DIR/$db-$(date +%F).sql"
done
}
# Main script
# Create chroot environment
mkdir -p $CHROOT_PATH
debootstrap --arch=amd64 bionic $CHROOT_PATH
# Mount essential directories
mount -t proc none $CHROOT_PATH/proc
mount -t sysfs none $CHROOT_PATH/sys
mount -o bind /dev $CHROOT_PATH/dev
# Copy host system's resolv.conf
cp /etc/resolv.conf $CHROOT_PATH/etc/resolv.conf
# Chroot into the environment
chroot $CHROOT_PATH
# Install MySQL and configure it
apt update
apt install -y mysql-server
# Start MySQL
start_mysql
# Run the backup script
backup_databases
# Exit the chroot environment
exit
# Unmount chroot environment
chroot $CHROOT_PATH /bin/bash -c "systemctl stop mysql"
umount $CHROOT_PATH/proc
umount $CHROOT_PATH/sys
umount $CHROOT_PATH/dev
# Remove the chroot environment directory
rm -r $CHROOT_PATH
echo "Backup completed in $BACKUP_DIR/backup-$(date +%F).tar.gz"