feat: run in cron or one-shot mode depending if KOPIA_CRON_SCHEDULE is set

This commit is contained in:
mandlm 2023-08-18 16:08:31 +02:00
parent 2be4717780
commit 62569d9abf
Signed by: mandlm
GPG Key ID: 4AA25D647AA54CC7
2 changed files with 17 additions and 10 deletions

View File

@ -3,7 +3,7 @@ FROM kopia/kopia
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y cron && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y cron && rm -rf /var/lib/apt/lists/*
ARG KOPIA_CRON_SCHEDULE="*/30 * * * *" ARG KOPIA_CRON_SCHEDULE
ENV KOPIA_CRON_SCHEDULE ${KOPIA_CRON_SCHEDULE} ENV KOPIA_CRON_SCHEDULE ${KOPIA_CRON_SCHEDULE}
ARG KOPIA_USERNAME ARG KOPIA_USERNAME

View File

@ -1,14 +1,21 @@
#!/bin/sh #!/bin/bash
CRONTAB=/etc/cron.d/kopia-backup if [[ -z ${KOPIA_CRON_SCHEDULE} ]];
then
echo "Running in one-shot mode"
printenv > /etc/environment /run-backup.sh
else
CRONTAB=/etc/cron.d/kopia-backup
echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}" printenv > /etc/environment
echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB} echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}"
chmod 0644 ${CRONTAB}
crontab ${CRONTAB}
touch /var/log/kopia-backup.log echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB}
cron && tail -f /var/log/kopia-backup.log chmod 0644 ${CRONTAB}
crontab ${CRONTAB}
touch /var/log/kopia-backup.log
cron && tail -f /var/log/kopia-backup.log
fi