Startup thinking for the social sector. Code to help nonprofits do the social web. Plus photography.
(And reading aloud.)
More about Eric Johnson.
Stories, software and strategies to help nonprofits do the social web
JungleDisk is another great entrant in the online backup business. Unlike Mozy, our favorite for Macs and PCs, JungleDisk also runs on Linux. And, since version 1.30a, it ships a command-line version.
Which means you can give your Linux servers reliable online backup — stored on Amazon’s S3.
Here’s more about how JungleDisk works.
Meanwhile, let’s get down to business. Our server install has three parts:
You’ve got rsync, and the other two aren’t much harder to install.
sudo apt-get install davfs2
kernel_fs fuse
jungledisk is the command-line version we’ll use herejunglediskmonitor is the GUI version. This version makes it easy to sign up for S3, and it writes the config file for you automatically — but you’ve got to have X11 installed to run it :(.junglediskmonitor can help you do this — if you’ve got X-windows installed. The junglediskmonitor also creates a settings file.~/.jungledisk/jungledisk-settings.ini. You’ll need to put your Amazon S3 access and secret keys and your username in place of the*<removed>* text below:1 LoginUsername= 2 LoginPassword= 3 AccessKeyID=*<removed>* 4 SecretKey=*<removed>* 5 Bucket=default 6 CacheDirectory=/home/*<removed>*/.jungledisk/cache/ 7 ListenPort=2667 8 CacheCheckInterval=120 9 AsyncOperations=1 10 Encrypt=1 11 ProxyServer= 12 EncryptionKey=PROTECTED: 13 DecryptionKeys=PROTECTED: 14 MaxCacheSize=1000 15 MapDrive= 16 UseSSL=0 17 RetryCount=3 18 FastCopy=1 19 WebAccess=0 20 LogDuration=30 21 License=
You can download a sample config file without the line numbers. A couple of lines will need editing to fit your circumstances.
Lines 3 and 4 are your Amazon S3 credentials. Copy and paste them from Amazon’s website. (Click the button labled “Your Web Services Account”, then choose “AWS Access Identifiers” to see these.)
Line 6: The directory where JungleDisk will write to while its processing. This needs to exist and be writable by the user who will run jungledisk. Most folks should just put their Linux username in place of *<removed>*.
Lines 1, 2 and 21 can be left blank (as they are here) for your 30-day trial of JungleDisk. Once you buy the software, however, you’ll want to fill them in. Lines 1 and 2 are the email address and password you used to make your JungleDisk purchase.
Line 21 is a license code generated by junglediskmonitor. I’m not aware of a way to produce this in the command-line client. The Mac OS X version of JungleDisk keeps the license in the keychain, where Keychain Access can show it. If anybody knows where to find this in Windows, please let us know in the comments.
Time to try it all out.
./jungledisk/jungledisk
sudo mkdir /mnt/s3
sudo mount -t davfs -o nolocks,noaskauth http://localhost:2667 /mnt/s3
echo “Here’s a file to try” > atestfile.txt
sudo cp atestfile.txt /mnt/s3
If you don’t love rsync yet, you’re gonna. Can you say “Differential Copy algorithm”? Rsync only copies the changed stuff. And that’s what makes over-the-net backups workable.
Here’s how to back up the whole enchilada (or at least all of your server’s /home directories).
rsync -r --inplace --size-only --bwlimit=50 /home /mnt/s3
Notice that the rsync command adds a bandwidth limit (—bwlimit=50) to the inplace and size-only flags that webDAV and JungleDisk recommend. Without this, you’ll find that jungledisk opens more files than the kernel will allow (at least in Ubuntu).
To schedule this stuff automatically, we’ll need to add a couple of lines to some of our config files. First we add a line to the end of fstab that lets our backup user mount our jungledrive (use sudo to carefully add this line).
/etc/fstab
http://localhost:2667 /mnt/s3 davfs user,nolocks,noaskauth 0 0
And here’s the shell script we use to actually do the backup. Line 5 here shows that we’ve got one more choice here — when to start jungledisk. It could be done in line 5 here, but because it’s a background process we want to leave running, we could start it on bootup by adding the jungledisk command to the end of /etc/rc.local.
/usr/local/bin/backup-jd
1 #!/bin/sh 2 ### Backs up office data to Jungledisk using rsync 3 LOGFILE=/var/log/backup-jd.log 4 ## Start in rc.local or here 5 #/usr/local/bin/jungledisk 6 mount /mnt/s3 7 echo "`date +"%F %R"`: Start backup-jd" >> $LOGFILE 8 rsync -r --inplace --size-only --bwlimit=50 /home /mnt/s3 9 echo "`date +"%F %R"`: Finish backup-jd" >> $LOGFILE 10 umount /mnt/s3
8/19/07: Add line numbers and a better explanation of the JungleDisk config file, plus a version for download.
Comments 0 Comments