#language en = Client backups = User data should be synchronised to each user's respective home directory on `b.fluid.tuwien.ac.at`. Home directories on `b.fluid` are backed up daily and can be restored for at least one year by the admins. If you do not yet have a home directory on `b.fluid`, please contact the admins (Thomas Loimer or Iris Fula) so they can create a home directory for you. == Setup instructions == === Windows === In order to set up file synchronisation to `b.fluid` on your Windows client, your system needs an rsync client and a customised Windows synchronisation script. For details on how to proceed, please contact Iris Fula. === GNU/Linux, macOS, other Unix-like operating systems === Please make sure to… * save the script [attachment:sync-to-host sync-to-host] to a directory, for example `~/bin/` * make the script `sync-to-host` executable (e.g. `chmod +x ~/bin/sync-to-host`) * check that the program `rsync` is installed (should be installed by default on most systems) * copy the following line to a terminal, adjusting `TU_USER` according to your TU username: {{{ export TU_USER=YOUR_TU_USERNAME }}} * copy/paste the following lines to a terminal {{{ export TARGET_HOST=b.fluid.tuwien.ac.at export TARGET_DIR=$(hostname -s) # run the backup script once (enter your TU password when asked to do so) ~/bin/sync-to-host ${TU_USER} ${TARGET_HOST} ${TARGET_DIR} }}} ==== Automated backups on GNU/Linux ==== In order to set up a cron job for automated client backups on GNU/Linux systems, please copy and paste the following lines into the same terminal as above. Adjust `SYNC_CMD` according to the path where you saved the [attachment:sync-to-host sync-to-host] script: {{{ export SYNC_CMD="${HOME}/bin/sync-to-host ${TU_USER} ${TARGET_HOST} ${TARGET_DIR}" export SYNC_TIME="$((RANDOM % 60)) * * * *" export CRON_ENTRY="${SYNC_TIME} ${SYNC_CMD}" crontab -l 2>/dev/null | { cat; echo "${CRON_ENTRY}"; } | crontab - }}} ==== Automated backups on macOS ==== In order to set up a launchd job for automated client backups on macOS systems, please copy and paste the following lines into a terminal: {{{ #!/bin/bash export BASENAME=at.ac.tuwien.fluid.b_backup-${USER} export PLIST_PATH=${HOME}/Library/LaunchAgents/${BASENAME}.plist cat > ${PLIST_PATH} < Label ${BASENAME} ProgramArguments ${HOME}/bin/sync-to-host ${TU_USER} ${TARGET_HOST} ${TARGET_DIR} RunAtLoad StartInterval3600 EOF launchctl load ${PLIST_PATH} }}} = Restoring data = == Instructions for admins == In order to restore data from a backup, backups can be mounted to a user's home directory. Users can then access their data using an SFTP client (e.g. Nautilus on GNU/Linux, Cyberduck on macOS and WinSCP on Windows). For example, in order to expose backup data from `b.fluid` to the user `oswat`, the following commands might be used: {{{ export BACKUP_REPO=/mnt/backup/b/home/oswat.borg export RESTORE_DIR=/home/oswat/restore-$(date -Idate) mkdir ${RESTORE_DIR} borg mount -o default_permissions,allow_other ${BACKUP_REPO} ${RESTORE_DIR} ls ${RESTORE_DIR} }}} Note: As soon as users have restored their data, backups should be unmounted again: {{{ umount ${RESTORE_DIR} }}}