na devi trzeba włączyć wykonywanie skryptów
devil binexec on
touch backupSite.sh
sudo chmod +x backupSite.sh
nano backupSite.shNa devil
touch backupSite.sh
chmod +x backupSite.sh
nano backupSite.sh
#!/bin/bash
#---------------------------------------------------------
# Skrypt tworzący kopię bazy danych MySQL za pomocą Drush.
# Opcjonalny parametr zmienia nazwę pliku kopii np ./backupSite.sh pierwsza
# utworzy plik pierwsza.sql
# Dla MySQL
# ©2025 Dariusz Frączkiewicz
#---------------------------------------------------------
set -e
BACKUP_DIR="$(pwd)/BackUp"
TIMESTAMP=$(date +'%Y%m%d_%H%M%S')
####################################################
# KONFIGURACJA
####################################################
# Wybór ścieżki do Drusha
HOSTING1_DR="vendor/bin/drush"
HOSTING2_DR="drush"
HOSTING3_DR="php84 vendor/drush/drush/drush.php"
HOSTING_DR=$HOSTING1_DR
####################################################
mkdir -p "$BACKUP_DIR"
# Pobranie opcjonalnego parametru z nazwą pliku
CUSTOM_NAME=$1
if [ -z "$CUSTOM_NAME" ]; then
# Jeśli parametr jest pusty, tworzy plik według daty
BACKUP_DB="${BACKUP_DIR}/backup_${TIMESTAMP}.sql"
else
# Jeśli parametr został podany, sprawdza czy ma już rozszerzenie .sql
if [[ "$CUSTOM_NAME" == *.sql ]]; then
BACKUP_DB="${BACKUP_DIR}/${CUSTOM_NAME}"
else
BACKUP_DB="${BACKUP_DIR}/${CUSTOM_NAME}.sql"
fi
fi
echo "Rozpoczynam tworzenie kopii zapasowej (MySQL): $TIMESTAMP"
# Czyszczenie cache Drupala
$HOSTING_DR cr
# Wykonywanie kopii MySQL za pomocą Drush sql-dump
echo "Wykonywanie kopii MySQL za pomocą Drush sql-dump..."
$HOSTING_DR sql-dump --result-file="$BACKUP_DB"
echo "Kopia zapasowa gotowa:"
echo "- Baza: $BACKUP_DB"