diff options
author | Kevin Hilman <khilman@baylibre.com> | 2020-02-12 15:58:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-12 15:58:51 -0800 |
commit | 751e6bbf1d651a4c7335c5de03c31074f4cea1ea (patch) | |
tree | 585d5ea195b4de44c9c5cab43a6a7760d78d19ba | |
parent | 3e8863a724de93baee3efaf5ea7abbdbd1a11d77 (diff) | |
parent | cccd52d88687294131116f2d1104e001cb58210d (diff) |
Merge pull request #110 from philm06/master
Improve backup handling
-rwxr-xr-x | backup.sh | 18 | ||||
-rwxr-xr-x | lava-master/entrypoint.d/01_setup.sh | 4 |
2 files changed, 16 insertions, 6 deletions
@@ -1,6 +1,11 @@ #!/bin/sh BACKUP_DIR="backup-$(date +%Y%m%d_%H%M)" +# use /tmp by default on host (this is used by tar) +TMPDIR=${TMPDIR:-/tmp} +export TMPDIR + +mkdir -p $TMPDIR mkdir $BACKUP_DIR cp boards.yaml $BACKUP_DIR @@ -10,18 +15,19 @@ if [ -z "$DOCKERID" ];then exit 1 fi -docker exec -ti $DOCKERID tar czf /root/devices.tar.gz /etc/lava-server/dispatcher-config/devices/ || exit $? +docker exec -t $DOCKERID tar czf /root/devices.tar.gz /etc/lava-server/dispatcher-config/devices/ || exit $? docker cp $DOCKERID:/root/devices.tar.gz $BACKUP_DIR/ || exit $? # for an unknown reason pg_dump > file doesnt work -docker exec -ti $DOCKERID sudo -u postgres pg_dump --create --clean lavaserver --file /tmp/db_lavaserver || exit $? -docker exec -ti $DOCKERID gzip /tmp/db_lavaserver || exit $? +docker exec -t $DOCKERID sudo -u postgres pg_dump --create --clean lavaserver --file /tmp/db_lavaserver || exit $? +docker exec -t $DOCKERID gzip /tmp/db_lavaserver || exit $? docker cp $DOCKERID:/tmp/db_lavaserver.gz $BACKUP_DIR/ || exit $? -docker exec -ti $DOCKERID rm /tmp/db_lavaserver.gz || exit $? +docker exec -t $DOCKERID rm /tmp/db_lavaserver.gz || exit $? -docker exec -ti $DOCKERID tar czf /root/joboutput.tar.gz /var/lib/lava-server/default/media/job-output/ || exit $? +# tar outputs warnings when file changes on disk while creating tar file. So do not "exit on error" +docker exec -t $DOCKERID tar czf /root/joboutput.tar.gz /var/lib/lava-server/default/media/job-output/ || echo "WARNING: tar operation returned $?" docker cp $DOCKERID:/root/joboutput.tar.gz $BACKUP_DIR/ || exit $? -docker exec -ti $DOCKERID rm /root/joboutput.tar.gz || exit $? +docker exec -t $DOCKERID rm /root/joboutput.tar.gz || exit $? echo "Backup done in $BACKUP_DIR" rm -f backup-latest diff --git a/lava-master/entrypoint.d/01_setup.sh b/lava-master/entrypoint.d/01_setup.sh index 4755bc4..ba81f77 100755 --- a/lava-master/entrypoint.d/01_setup.sh +++ b/lava-master/entrypoint.d/01_setup.sh @@ -17,6 +17,10 @@ if [ -e /root/backup/db_lavaserver ];then yes yes | lava-server manage migrate || exit $? echo "Restore jobs output from backup" rm -r /var/lib/lava-server/default/media/job-output/* + + # allow using different folder for tar operations (/tmp by default) + TMPDIR=${TMPDIR:-/tmp} + tar xzf /root/backup/joboutput.tar.gz || exit $? fi |