Installieren des postgres-clients z.B. per "apt-get install postgresql-client-11"

Back-Up-Skript "/path/to/backup-script/backup_dbs.sh" anlegen, .pgpass anlegen, Pfade und DB-Namen ersetzen

Backup-Script
#!/bin/bash

DATE=`date +%d-%m-%y`
BACKUP_PATH=/path/to/backup-directory 
declare -A databases
databases[dbname]=dbport
databases[dbname2]=dbport
databases[dbname3]=dbport
databases[dbname4]=dbport
# Erstmal aufräumen alles was älter als eine Woche ist.
find $BACKUP_PATH/*.pgdump -mtime +7 -exec rm {} \;

# Dann können wir sichern
# das DB-Passwort ist in .pgpass im User-Home  gespeichert -> https://www.postgresql.org/docs/9.3/libpq-pgpass.html  
# Über alle Keys (DB-Name) des Arrays iterieren und den Value als Port eintragen
for database in "${!databases[@]}" do
	pg_dump -h  hostip  -Fc -w -U postgres -p ${databases[$database]} -f $BACKUP_PATH/"$database"_$DATE.pgdump -d "$database"
done

Die Skriptausführung erlauben. chmod u=rwx /path/to/backup-script/backup_dbs.sh

Cron-Job anlegen, dazu crontab des Benutzers öffen, "crontab -e" (bei der ersten Ausführung wird nach dem Standardeditor gefragt)

Job-Anweisung eintragen (bedeutet 2 Uhr nachts)

crontab pscontent-user
0 2 * * * sh /path/to/backup-script/backup_dbs.sh >/dev/null 2>&1


  • Keine Stichwörter