Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 9473 В разделе
Sysadmin
от October 23rd, 2018,
В подшивках: Backups, Docker, PostgreSQL
You can easily dump your Postgresql database from Docker container or directly and you have 2 ways to do it. First variant more dangerous, depends on internet connection, but not requires a lot of disk space. Second variant more stable, but if free space suddenly is out your backup will be failed. You can add error checking and reporting to Zabbix like here.
Variant 1: stream backing up file to FTP (directly)
#!/bin/bash source /etc/profile weekday=$(date '+%w') pg_dump postgresql://pguser:pgpassword@mydatabase.server.com:5433/database | gzip | curl -u ftplogin:ftppassword \ ftp://backup-ftp.server.com/postgres-backups/$weekday/db_backup.sql.gz --ftp-create-dirs -T -
Variant 2: dump to local host, upload and delete local file (from Docker)
#!/bin/bash
source /etc/profile
db_user="postgres"
db_pass="lkfgjs4573234"
db_host="127.0.0.1"
db_port="5432"
db_name="my_precious_db"
ftp_user="useruseruser"
ftp_pass="klksdjfa;lkjdf"
ftp_serv="ftp.server.ru"
weekday=$(date '+%w') # 7 days history
history=${weekday}
docker exec -it pg-slave-server su -c "pg_dump postgresql://${db_user}:${db_pass}@${db_host}:${db_port}/${db_name}" \
postgres |gzip -7 > /tmp/db_backup_${db_name}_${history}.sql.gz
curl --upload-file /tmp/db_backup_${db_name}_${history}.sql.gz ftp://${ftp_user}:${ftp_pass}@${ftp_serv}/
rm -f /tmp/db_backup_${db_name}_${history}.sql.gz
Fortune cookie: A young lady sat by the sea, Just as proper as proper could be. A young fellow goosed her, And roughly seduced her, So she thanked him and went home to tea.
Leave a Reply