A few weeks ago we got back from holiday to be told that we couldn't return to our room because the area where we live (Takhmao, outside Phnom Penh) was flooded. Two days later when the water had dropped to a foot deep we were finally allowed back to paddled into our room (which we use for living/office/maintenance/training) and saw that the water had come up over the tops of the desks. The room was a mess and my heart sank knowing that our two laptops and backup drives were in the drawers of the desks. Most of our tools and electrical gear were also soaked, along with about ten desktop PCs which I was in the middle of setting up. The laptops were ruined, but amazingly the portable hard drives worked ok once I had stripped and dried them, as did most of the desktops.

I know that on the scale of world disasters, 4ft of water doesn't even register at all, but it was pretty inconvenient for a while.

Anyway, it got me thinking about backups. We do a monthly backup of really irreplaceable data and keep it tucked away in a first floor fire-proof cabinet about one kilometre away, so even if our local backups had failed all would not have been not lost. But now we keep the local backups on the top shelf of a locked cabinet in our room, much higher than the computers on the desk. And I have bought a bigger external drive so that I can back up ALL my data off site. I have thought about internet-based back up solutions as well, but the really irreplaceable files such as photos are too big I think.

It's easy to think that such a disaster will never strike - after all, Takhmao hasn't had a flood within living memory - and not put in place a rigorous back up scheme. Now I realise the error of that kind of thinking. The fact that it hasn't happened before doesn't mean that it can't!

What a nightmare! As you say, in the grand scheme of things it doesn't compare with genocide, war, AIDS, tsunamis, etc., but certainly a big loss for you that will require lots of time and money to replace.

Your reminder about backups is important. I do think we forget about all the things that *might* happen and it's not enough to have a backup or two or ten in a desk drawer, and even storing off premises doesn't guarantee safety. I lost my off-premises storage when we sold my late mother's house, which is about 400 feet away, so I'm currently trying to think of the best, most convenient place for storing them. We have a detached garage far enough from the house so that it wouldn't likely burn down if the house did, a flood is nearly impossible and a destructive earthquake is highly unlikely. But it's too cold here in the winter for storing an external hard drive and DVDs are impractical because of the size required for backups. Meanwhile, all the backups are in our house and I tremble a bit.

You're right about on-site backups, they need careful planning too. It did occur to me that if our local sponsor kicked us out for any reason then we might not be able to get to either our main computers or the backup in the fireproof cabinet. I guess that paying for my own web space and saving on line might be the ultimate backup, but I'm loathe to spend any more money.Andy

Sounds like a good idea, but we don't have a house! We live & work in this one room in a factory here in Cambodia, so our options are a bit limited. We do take CDs of our photos back to the UK when we go every three or four years, but that's hardly a viable off-site strategy!Andy

You're right about on-site backups, they need careful planning too. It did occur to me that if our local sponsor kicked us out for any reason then we might not be able to get to either our main computers or the backup in the fireproof cabinet. I guess that paying for my own web space and saving on line might be the ultimate backup, but I'm loathe to spend any more money.Andy

Do you have an associate out of country who would be willing to set up a back-up machine for you. You could then use the free service provided by http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html That would enable you to ftp to that machine where ever it is. You would only be limited by the available space on that hard-drive and the internet speed you have available to you. Then even if you get kicked out of the country and were denied access to your equipment, you would be covered.

One of the machines I lost to the waters was my cloning server - an old P3 WinXP machine holding ghost images of various Windows installations which I use to pre-install hard drives ready for the schools. I did have copies of the ghost images (most of which are spanned over several 2GB files) in a couple of places, so I set about copying them to a replacement server. When I started using the new server I found that several of the images failed their integrity test, or the cloned drives refused to boot when installed in the clients.

With duplicate images scattered over several drives I needed to find a way to compare them and after a bit of searching I came across md5deep, a nice tool (available for Windows as well as Linux) which generates md5 values for any number of files-in-folders using the -r switch. By comparing md5 values I could see that several files had not copied over correctly (via USB) and I was able to bring my three copies of all the files in line. So, another lesson learned: always check to see if important files have copied correctly.

Does anyone use a different/better method for checking that files have copied correctly?

md5deep is an awesome tool. There are a couple reasons not to use MD5 (as an algorythm).

1) You need faster results2) You need more secure results

In the case of 1, you could use a CRC algorythm. These work good at detecting accidental errors in files. `man 1 cksum` I don't see a recursive crc program. If speed is a consideration for you I could whip up a bash script that runs cksum recursivey.

In the case of 2, you could use an SHA algorythm. With these, it is harder for an attacker to hide a change in the files. MD5 and SHA1 have both been compromised olgorythmically. It is much more difficult to trick the SHA family. `sha256deep`