Compare commits

..

3 Commits

3 changed files with 17 additions and 5 deletions

View File

@ -17,7 +17,7 @@ Then either run `sudo tupper` or wait for the daily cron scheduler to kick in.
## Building ## Building
`dpkg-deb --build . tupper_0.1_any.deb` `dpkg-deb --build . tupper_0.1_all.deb`
## TODO / Known pitfalls ## TODO / Known pitfalls

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
/usr/sbin/tupper 2>&1 | tee --append /var/log/tupper.log /usr/sbin/tupper backup 2>&1 | tee --append /var/log/tupper.log

View File

@ -3,6 +3,14 @@
# Inform user # Inform user
echo "Welcome to tupper! Running on $(date)" echo "Welcome to tupper! Running on $(date)"
# Check if it is clear what to do
ACTION="$1"
if [ "$ACTION" != "backup" ] && [ "$ACTION" != "initialize" ]; then
echo "tupper requires an action: $0 { initialize | backup }" 1>&2
echo "Unrecognized action: $ACTION" 1>&2
exit 1
fi
# Check access rights of config file # Check access rights of config file
CONF="/etc/tupper.conf" CONF="/etc/tupper.conf"
if [ "$(stat -c '%U' $CONF)" != "root" ] && [ "$(stat -c '%A' $CONF)" = "*------" ]; then if [ "$(stat -c '%U' $CONF)" != "root" ] && [ "$(stat -c '%A' $CONF)" = "*------" ]; then
@ -13,7 +21,7 @@ fi
source "$CONF" source "$CONF"
# Check if required variables are set # Check if required variables are set
if [ "$SSH_URI$SSH_PASS$TARGET" = "" ]; then if [ "$SSH_URI" = "" ] || [ "$SSH_PASS" = "" ] || [ "$TARGET" = "" ]; then
echo "Config file $CONF must contain SSH_URI, SSH_PASS and TARGET" 1>&2 echo "Config file $CONF must contain SSH_URI, SSH_PASS and TARGET" 1>&2
exit 1 exit 1
fi fi
@ -35,8 +43,12 @@ fi
# Backup # Backup
export BORG_PASSPHRASE export BORG_PASSPHRASE
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
borg create --stats "$MOUNTPOINT::"'{now}' "$TARGET" if [ "$ACTION" = "initialize" ]; then
borg list "$MOUNTPOINT" borg init --encryption=repokey "$TARGET"
elif [ "$ACTION" = "backup" ]; then
borg create --stats "$MOUNTPOINT::"'{now}' "$TARGET"
borg list "$MOUNTPOINT"
fi
# Unmount and clean up mountpoint # Unmount and clean up mountpoint
fusermount -u "$MOUNTPOINT" && \ fusermount -u "$MOUNTPOINT" && \