
Backup today can be a PITA. It takes too long, and too much work to automate. That’s what makes this single line backup script one of my favorites. It creates a compressed DD image a remote server in the form of a BZ2 archive. This command is run locally from the machine you want to backup.
Let’s begin:
First, create your file
nano xf
Inside xf, paste the following:
#!/bin/bash dd if=/dev/vda1 of=/dev/stdout bs=1M | bzip2 | ssh root@myhost.com "cat - > /home/backups/Live.img.bz2"
Let’s break this down, so you can create your own command!
First, start by doing a df -a
to determine the name of your disk, replacing /dev/vda1 with the disk you want to backup.
Second, change root@myhost.com to your remote server. For best practices you should exchange SSH keys so there is no password prompt. See this tutorial here to exchange keys.
Finally, change /home/backups/Live.img.bz2 to the destination directory and filename you would like on the remote server.
Run the script in a shell to test, and finally automate.
Be sure to make your script executable by running chmod +x
after creation. To run in the background, install apt-get install nohup
. This will allow you to start your backup script in the background, allowing it plenty of time to execute. nohup ./scriptname &
will run the script as a daemon.