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.
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 sync-to-host to a directory in your $PATH (for example /usr/local/bin),
make the script sync-to-host executable (e.g. chmod +x /usr/local/bin/sync-to-host)
check that the program rsync is installed (should be installed by default on most systems)
check that the program anacron is installed (should be installed by default on most desktop systems)
copy/paste the following lines to a terminal (adjust TU_USER according to your TU username):
export TU_USER=YOUR_TU_USERNAME export CONFIG_DIR="${HOME}/.config/sync-to-host" 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) 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 a terminal:
export CRON_FILE=/etc/cron.hourly/b_backup-${TU_USER} sudo tee ${CRON_FILE} <<EOF #!/bin/bash sudo -u ${USER} /usr/local/bin/sync-to-host ${TU_USER} ${TARGET_HOST} ${TARGET_DIR} EOF sudo chmod +x ${CRON_FILE}
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} <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>${BASENAME}</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/sync-to-host</string> <string>${TU_USER}</string> <string>${TARGET_HOST}</string> <string>${TARGET_DIR}</string> </array> <key>RunAtLoad</key><true/> <key>StartInterval</key><integer>3600</integer> </dict> </plist> 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}