5 Commits
v0.4 ... v0.8

Author SHA1 Message Date
bel
0421c8b8d9 hopefully fix bad backup 2020-05-15 11:16:40 -06:00
Bel LaPointe
a904244fd2 Delete failed backups 2020-04-15 19:11:51 +00:00
Bel LaPointe
7ccb495a1a Amend backup to clean 2020-04-07 15:43:11 -06:00
Bel LaPointe
06e5ac98d1 Fix ubuntu version though it shouldnt matter in the future 2020-04-07 13:43:40 -06:00
Bel LaPointe
2cffb2c2cb Update for pg_dump backups 2020-04-07 13:07:58 -06:00
7 changed files with 5455 additions and 12 deletions

View File

@@ -1,13 +1,16 @@
FROM ubuntu:18.10 as builder
RUN apt -y update \
&& apt -y install gcc
FROM ubuntu:18.04 as builder
RUN apt -y update || true; apt -y install gcc
COPY ./pause /pause
RUN cd /pause && gcc ./main.c -o pauser
FROM ubuntu:18.10
FROM ubuntu:18.04
RUN groupadd postgres && useradd -d /home/postgres -ms /bin/bash -g postgres -G sudo postgres
RUN apt -y update \
&& apt -y install \
RUN export DEBIAN_FRONTEND=noninteractive; \
apt -y update || true; \
apt -y install tzdata; \
ln -fs /usr/share/zoneinfo/America/Denver /etc/localtime; \
dpkg-reconfigure --frontend noninteractive tzdata; \
apt -y install \
curl \
rsync \
cron \
@@ -40,17 +43,17 @@ COPY --from=builder /pause/pauser /pauser
USER root
### CRON BACKUPS
RUN true \
&& echo 'service postgresql stop && sleep 5 && b=$(date +%Y%m%d%H) && mkdir -p /mnt/save/$b && rsync -avzP --delete /var/lib/postgresql/10/main/ /mnt/save/$b/ && service postgresql start' > /backup.sh \
&& echo 'service postgresql stop && sleep 5 && b=$(find /mnt/save -mindepth 1 -maxdepth 1 | sort | tail -n 1); if [ -n "$b" ]; then rsync -avzP --delete "${b%/}/" /var/lib/postgresql/10/main/; fi && chown -R postgres /var/lib/postgresql && chmod -R 0700 /var/lib/postgresql && service postgresql start;' > /restore.sh \
&& echo 'b=$(date +%Y%m%d%H%M%S); mkdir -p /mnt/save/$b; pg_dump $DATABASE_URL --clean > /mnt/save/$b/pg.dump || (rm -rf /mnt/save/$b; echo "backup failed; deleting $b"; exit 1); if du -sh /mnt/save/$b | grep -i "^[ ]*4.0K"; then rm -rf /mnt/save/$b; echo rm empty backup $b; fi' > /backup.sh \
&& echo 'b=$(find /mnt/save -type f | sort | tail -n 1); if [ -n "$b" ]; then echo restoring $b; psql $DATABASE_URL < "$b"; fi && service postgresql start;' > /restore.sh \
&& echo '0 4,8,12,16,20 * * * bash /backup.sh >> /var/log/cronj.log 2>&1' > /etc/cron.d/backups \
&& echo '' >> /etc/cron.d/backups \
&& chmod 0644 /etc/cron.d/backups \
&& touch /var/log/cronj.log
ENTRYPOINT \
bash /restore.sh \
&& service postgresql start \
&& sleep 10 \
service postgresql start \
&& until psql $DATABASE_URL < /dev/null; do sleep 5; done \
&& bash /restore.sh \
&& miniflux -migrate \
&& miniflux -create-admin \
&& miniflux \

View File

@@ -14,7 +14,7 @@ int main() {
printf("Waiting...\n");
stat = sigwait(&set, &sig);
printf("Wait complete: %i (%i)\n", sig, stat);
printf("Stopped postgres: %i\n", system("service postgresql stop && sleep 5"));
printf("Saved postgres: %i\n", system("bash /backup.sh"));
printf("Bye-bye!\n");
return 0;
}

1088
tmp/save/20200415125736/pg.dump Executable file

File diff suppressed because one or more lines are too long

1088
tmp/save/20200415125802/pg.dump Executable file

File diff suppressed because one or more lines are too long

1088
tmp/save/20200415125811/pg.dump Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long