Backing up your dedicated server may be the single most important thing you ever do. Your clients, customers, users, or whatever you call them depend on you to keep their data safe. There are several free backup tools you may choose and plenty of paid backup service options, but one free tool that is definitely worth considering is rsync.
As the name implies, rsync keeps files in sync between two locations. You can sync files between two directories on the same server, between the server and a remote backup server, or even between two systems on the same network. Because of its versatility, you can even use rsync to keep files on your personal or business computer in sync.
One method of backing up files is to simply copy all of the files from one location to another, but this takes a long time and a lot of unnecessary bandwidth when only a few files may have changed or been added. Rsync uses incremental file transfers, however, only adding new files and updating changed files, making the process much faster, more efficient, and consuming less bandwidth.
Many Linux server operating systems ship with rsync, so you do not need to install it. Those that do not usually make it available in their software repositories. Once you have it installed, you can run it directly from the console or through SSH (Secure Shell), if your server is at a remote location.
To sync one directory with another directory, you would use the following command format:
rsync -avz /path/to/your/files /path/to/backup
Replace “/path/to/your/files” with the actual full directory path containing your files and “/path/to/backup” with the full path of the directory you want to use for your backups.
To backup to a remote location, simply add the remote host information:
rsync -avz /path/to/your/files email@example.com:/path/to/backup
Rsync will use secure shell technology (SSH) to transfer and sync your files, which is good for efficiency and security.
Automating Your Backups
If you want more sophistication to your backups, such as daily, weekly, and/or monthly snapshots, you can write a basic Bash script to make this possible. Alternatively, you can try one of the scripts created by other users or one of the examples from the rsync website.
To automate your backup script for periodic, incremental updates, you should use cron. On many servers, it is as simple as copying your script into cron.daily, cron.weekly, and/or cron.monthly. In order to have the process fully automated without having to manually login, you will need to setup SSH keys on your server and remote backup system.
If you plan on using rsync often, you might find it easier to use a graphical interface. Grsync is a great tool for setting up rsync backups, mirroring, or file synchronization without needing to use the command line. It is available for Linux, Windows, and Mac OS X.
Grsync allows you to configure many of the options from rsync and create multiple sessions so that you can perform previous syncing operations again without having to retype any of the information. Grsync is free and open source and available for download from the project’s website.
Finding Out More
Rsync is a very powerful tool, and there are many other tasks you can perform with it, as well as several variations and related tools you can use. Some web hosts, such as UK web server hosting company 34SP.com, offer rsync as a default option on their servers. This makes it easy to get started with your backups. For more information about rsync, visit the project’s website.