Skip to main content Skip to page footer

Manuelle Sicherung eines Projekts per Bash-Skript

Mit dem folgenden Bash-Skript kann eine manuelle Sicherung der Datenbank und/oder der Dateien eines Projets durchgeführt werden.

#!/bin/bash
# Set variables for paths and strings
backup_dir="/pfad/zu/den/backups"
website_dir="/pfad/zum/projekt"
site_name="projektname"
# Set variables for database parameters
db_host="localhost"
db_user="DBUSER"
db_password="DBPASSWORD"
db_name="DBNAME"
# Create backup directories if they don't exist
mkdir -p "$backup_dir/databases"
mkdir -p "$backup_dir/files"
echo "Willkommen zum Sicherungsskript fuer $site_name"
read -p "Moechtest du die Datenbank sichern? (j/n): " backup_db
read -p "Moechtest du die Dateien sichern? (j/n): " backup_files
function backup_database() {
    mysqldump --opt --column-statistics=0 --no-tablespaces -h "$db_host" -u "$db_user" -p"$db_password" "$db_name" | gzip > "$backup_dir/databases/$site_name.dump.sql.$dayofweek.gz"
    echo "Datenbank wurde gesichert."
}
function backup_files() {
    rm -f "$backup_dir/files/$site_name.$dayofweek*"
    tar cf "$backup_dir/files/$site_name.$dayofweek" "$website_dir"
    gzip -f "$backup_dir/files/$site_name.$dayofweek"
    echo "Dateien wurden gesichert."
}
dayofweek=$(date '+%A')
if [ "$backup_db" == "j" ]; then
    backup_database
fi
if [ "$backup_files" == "j" ]; then
    backup_files
fi
echo "Sicherung abgeschlossen."

Bei den Variablen in den Zeilen 4-12 müssen die entsprechenden Werte für das Projekt eingefügt werden.