I currently have my Macs and FreeBSD box setup so that whenever I log in (physically or via ssh), it either creates or reconnects (automatically) to a screen session, which is extremely useful. All of this is accomplished through a few lines added to my .bashrc file:
# Auto-screen invocation. see: http://taint.org/wk/RemoteLoginAutoScreen
# if we're coming from a remote SSH connection, in an interactive session
# then automatically put us into a screen(1) session. Only try once
# -- if $STARTED_SCREEN is set, don't try it again, to avoid looping
# if screen fails for some reason.
#if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x -a "${SSH_TTY:-x}" != x ]
# changed so it should put us in a screen session everytime...
if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x ] && [ "${TERM:-x}" != "screen" -o "${SSH_TTY:-x}" != x ]
then
STARTED_SCREEN=1 ; export STARTED_SCREEN
sleep 1
screen -xRR && exit 0
# normally, execution of this rc script ends here...
echo "Screen failed! continuing with normal bash startup"
fi
# [end of auto-screen snippet]
I have also been using a great online backup service called Tarsnap for the past few years (www.tarsnap.com). Some of it's best features are that it heavily encrypts your backed-up data, only stores unique data, and is a command line program similar in usage to tar (makes it very easy to script). Because of it's scriptability, I have daily automatic backups of all important data, made using a script I modified (simple-tarsnap.sh). It takes care of keeping cleaning up old daily backups (by losing backupresolution: 7 daily -> 1 weekly -> 1 monthly).