The Fault-Tolerant Shell (ftsh) is a small language for system integration that makes failures a first class concept. Ftsh aims to combine the ease of scripting with very precise error semantics. It is especially useful in building distributed systems, where failures are common, making timeouts, retry, and alternation necessary techniques. For example:
try for 30 minutes
cd /tmp
rm -f data
forany host in xxx yyy zzz
wget http://${host}/fresh.data data
end
end
If any element of the script fails, all running process trees are reliably cleaned up, and the block is tried again with an exponential backoff. You might think of this as exception handling for scripts. To learn more, please read the technical manual, or a more philosophical paper.
News Items
- ftsh started an interesting discussion on Slashdot
- ftsh is distributed with the Virtual Data Toolkit
- ftsh is available on Sun Freeware