2017-03-19 00:11:03 +00:00
|
|
|
#! /bin/bash
|
|
|
|
|
2017-07-17 02:37:16 +00:00
|
|
|
# If first arg is bash, we'll just execute directly
|
2017-03-19 00:11:03 +00:00
|
|
|
if [ "$1" == "bash" ]; then
|
|
|
|
exec "$@"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2017-07-17 02:37:16 +00:00
|
|
|
# If no env variable set, get from command line
|
|
|
|
if [ "$OPT_ARGUMENTS" == "" ]; then
|
2021-06-14 22:55:26 +00:00
|
|
|
export OPT_ARGUMENTS="$*"
|
2017-07-17 02:37:16 +00:00
|
|
|
fi
|
|
|
|
|
2018-07-24 15:38:22 +00:00
|
|
|
# Init the repo
|
2021-06-14 22:55:26 +00:00
|
|
|
restic -r "$BACKUP_DEST" snapshots || restic -r "$BACKUP_DEST" init
|
2017-06-29 06:28:48 +00:00
|
|
|
|
2018-03-10 01:29:41 +00:00
|
|
|
# If set to restore on start, restore if the data volume is empty
|
2021-06-14 22:55:26 +00:00
|
|
|
if [ "$RESTORE_ON_EMPTY_START" == "true" ] && [ -z "$(ls -A "$PATH_TO_BACKUP")" ]; then
|
2021-06-15 00:01:52 +00:00
|
|
|
/scripts/cron-exec.sh /scripts/restore.sh latest
|
2018-03-10 01:29:41 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Unless explicitly skipping, take a backup on startup
|
2017-03-19 00:11:03 +00:00
|
|
|
if [ "$SKIP_ON_START" != "true" ]; then
|
2021-06-15 00:01:52 +00:00
|
|
|
/scripts/cron-exec.sh /scripts/backup.sh
|
2017-03-19 00:11:03 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "$CRON_SCHEDULE" ]; then
|
|
|
|
# Export the environment to a file so it can be loaded from cron
|
2019-02-02 01:02:44 +00:00
|
|
|
env | sed 's/^\(.*\)=\(.*\)$/export \1="\2"/g' > /env.sh
|
2017-03-19 00:11:03 +00:00
|
|
|
# Remove some vars we don't want to keep
|
2019-02-02 01:02:44 +00:00
|
|
|
sed -i '/\(HOSTNAME\|affinity\|SHLVL\|PWD\)/d' /env.sh
|
2017-03-19 00:11:03 +00:00
|
|
|
|
|
|
|
# Use bash for cron
|
|
|
|
echo "SHELL=/bin/bash" > /crontab.conf
|
|
|
|
|
|
|
|
# Schedule the backups
|
2021-06-15 21:50:03 +00:00
|
|
|
echo "$CRON_SCHEDULE /scripts/cron-exec.sh /scripts/backup.sh" >> /crontab.conf
|
2017-03-19 00:11:03 +00:00
|
|
|
echo "Backups scheduled as $CRON_SCHEDULE"
|
|
|
|
|
|
|
|
if [ -n "$VERIFY_CRON_SCHEDULE" ]; then
|
2021-06-15 21:50:03 +00:00
|
|
|
echo "$VERIFY_CRON_SCHEDULE /scripts/cron-exec.sh /scripts/verify.sh" >> /crontab.conf
|
2017-03-19 00:11:03 +00:00
|
|
|
echo "Verify scheduled as $VERIFY_CRON_SCHEDULE"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Add to crontab
|
|
|
|
crontab /crontab.conf
|
|
|
|
|
2021-06-15 00:01:52 +00:00
|
|
|
# List crontabs
|
|
|
|
crontab -l
|
|
|
|
|
|
|
|
echo "Starting cron..."
|
|
|
|
crond
|
2017-03-19 00:11:03 +00:00
|
|
|
|
2018-07-24 15:38:22 +00:00
|
|
|
touch /cron.log
|
|
|
|
tail -f /cron.log
|
2017-03-19 00:11:03 +00:00
|
|
|
fi
|