mirror of
https://github.com/Mailu/Mailu.git
synced 2024-12-12 10:45:38 +02:00
29 lines
747 B
Bash
Executable File
29 lines
747 B
Bash
Executable File
#!/bin/sh
|
|
|
|
dest="/backup/base-$(date +%F-%H%M)"
|
|
last=$(ls -d /backup/base* | tail -n1)
|
|
mkdir $dest || exit $?
|
|
|
|
pg_basebackup --wal-method=none --pgdata=$dest --format=tar --gzip --username=postgres || exit $?
|
|
|
|
# Clean old base backups, keep the last and the current.
|
|
for d in /backup/base*; do
|
|
if [ "$d" == "$last" ] || [ "$d" == "$dest" ]; then
|
|
continue
|
|
fi
|
|
rm -r $d || exit $?
|
|
done
|
|
|
|
# Clean the wall archive
|
|
cd /backup/wal_archive || exit $?
|
|
if [ $(ls *.*.backup | wc -l) -lt 2 ]; then
|
|
exit 0
|
|
fi
|
|
# Find the single last wal.backup point
|
|
prev_wal_start="$(ls *.*.backup | tail -n2 | head -n1 | cut -d '.' -f 1)"
|
|
for f in $(ls) ; do
|
|
if [ "$f" \< "$prev_wal_start" ]; then
|
|
rm -v /backup/wal_archive/$f
|
|
fi
|
|
done
|