Howto Backup your Mac incrementally over SSH
Do you have access to a shell account on a unix server with some spare space? If so it's pretty easy to incrementally backup your files securely with SSH.
I titled this entry Howto Backup your Mac incrementally over SSH but this technique can also be used to backup any computer that can run rsync
and ssh
. They are already installed on Mac OS X, and most linux / unix servers.
Step 1 - Create a folder to store your backups on the remote server
mkdir backup
Make sure that your SSH user has permission to write to this directory.
Step 2 - Setup automatic authentication Optional
This step allows the backups to run without prompting you for a password when it runs. You can omit this step but you will have to type in your ssh password each you run backup.
I wrote an article called Setting up public key authentication over SSH that will guide you through this step.
If you own the server you might also want to create a user specifically for this process.
Step 3 - Use rsync
to backup files incrementally
rsync -e "ssh" -rca --delete-after ~/test/ [email protected]:backup
Now lets break it down a bit:
- rsync - this syncs the local directory to with the server directory.
- -e "ssh" - this tells
rsync
to usessh
if your want to pass in other ssh options such as port you can do that in the quotes:-e "ssh -p 12345"
- -rca recursive, checksum, and archive
- --delete-after - this will delete files on the server if you delete them locally.
- ~/test/ - I am backing up / syncing the
test
directory inside my home directory on my mac. - [email protected]:backup - my ssh username is
pete
, my remote ssh server hostname ismyserver.example.com
, and I am backing up into the directory~pete/backup
.
Excluding directories
Sometimes you might want to exclude a directory from being backed up, perhaps your Music
directory since that is already backed up on your ipod.
rsync -e "ssh" -rca --delete-after --exclude=Music --delete-excluded ~/test/ [email protected]:backup
Step 4 - Schedule it with cron Optional
Now lets create a cron job (scheduled task) to run this script every day. First make a new file called backup.sh
in your home directory.
#!/bin/sh rsync -e "ssh" -rca --delete-after ~/test/ [email protected]:backup
Now sure make the file is executable: chmod ug+x backup.sh
Next type crontab -e
this will open up your scheduled tasks list, in most cases it will open an empty file. Add the following to the file:
15 11 * * * yourusername ~yourusername/backup.sh
That's will schedule the script to run at 11:15am. If you don't want to do this step you can simply run the command whenever you want to run a backup.
DISCLAIMER You should test everything before performing the backups on your live data. If you would like to use the scripts above you must acknowledge that I'm not responsible for any loss of data.
I'd love to hear your feedback on this, please comment below. I'm use this technique to backup my two web servers on to each other.
Like this? Follow me ↯
Tweet Follow @pfreitagHowto Backup your Mac incrementally over SSH was first published on March 10, 2006.
If you like reading about backup, ssh, rsync, mac, osx, linux, unix, tips, or howto then you might also like:
- The 15 Essential UNIX commands
- Searching for files by file name on Mac or Linux
- Recursively Counting files by Extension on Mac or Linux
- Anyone used MacFuse?
- Top 20 Internet Security Vulnerabilities of 2005
- How to Disable the Safari RSS Feature
- Dashboard Widget Tip - Quickly Removing Widgets
- Creating a Symbolic Link with ln -s What Comes First?
Want Security Advisories via Email?
Advisory Week is a new weekly email containing security advisories published by major software vendors (Adobe, Apple, Microsoft, etc).
Comments
Fileshunt.com has incredible speed of searching rapidshare links in the internet.
http://fileshunt.com database includes all rapidshare links.
Thanks
Now it's the best file hosting search engine in the web.
More than 4 000 000 files indexed.
Try it and i think you will be satisfied with search results.
Use search string.