Skip to content

Instantly share code, notes, and snippets.

@coltrane
Created May 7, 2012 17:05
Show Gist options
  • Save coltrane/2629002 to your computer and use it in GitHub Desktop.
Save coltrane/2629002 to your computer and use it in GitHub Desktop.
example data dump with retry on failure
#!/bin/bash
while true ; do
# there is no way to distinguish node's (1) exit code on SIGINT (and SIGTERM)
# from a (1) exit code due to normal exit call in userland.
# if node preserved SIGINT/SIGTERM, then the shell would detect node's
# "abnormal exit" status, and the script would terminate immediately after
# node returns
# as it stands, it will be very difficult to terminate this script
# using Ctrl-C (SIGINT).
if node dump-data.js > backup.json ; then
break
fi
echo -e "\nbackup failed. retrying..."
done
echo "backup complete. $(date)"
echo "transferring to permanent storage..."
scp "backup.json" "somehost.example.com:~/backup-$(date +%Y%m%d).json"
echo "transfer complete. $(date)"
process.stderr.write("simulating backup action (sleep for 20 seconds). "+
"Press Ctrl-C.. see what happens.");
setTimeout(function() {
process.stderr.write('ok - success!\n');
process.exit(0);
}, 20000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment