Disclaimer: “Fast howto” means in my world just dumping my config files for everyone to use, explanations are optional.
Used tools: systemd, rsync (and cryptsetup)
Just write a systemd service file like my ‘projectBackup.service’:
You can replace ‘projects’ with whatever you like/need.
[Unit] #device file in question look for it with: #systemctl --all --full | grep plugged #you could also use uuid's which would be safer #following is just my case: After=dev-mapper-projects.device [Service] # script to start ExecStart=/root/projectBackup.sh [Install] #obvious WantedBy=dev-mapper-projects.device
The script:
#!/bin/bash #just mount it... mount /dev/mapper/projects /mnt/backup #the magic happens here... rsync -avhim --partial --exclude '**/tmp/**' /mnt/somewhere/projects/ /mnt/backup # we're done so get da fuq out! umount /mnt/backup # hide my data... :) cryptsetup luksClose /dev/mapper/projects
The only thing I’ve still to do after plugging the hdd in is:
cryptsetup luksOpen /dev/sdd1 projects
Everything else goes by itself. Of course you have no progress bar or whatever to know when it’s done. But you can use
journalctl -fu projectBackup.service
and you see all output of rsync like when you see it in your terminal when you run that command manually plus a really nice timestamp.