|
|
大家知道, 所有的硬盘, 总有一天是要突然暴亡的。
伤心事不多提...我先来贴贴我的脚本:- #!/bin/bash
- #Check if root
- if [ `id -u` != 0 ] ; then echo "==> Can't run as non-root!" ; exit 1 ; fi
- #What's the time?
- TIME=$(date '+%Y%m%d%H%M')
- #Backup from...
- WHO='me'
- HOME="/home/${WHO}"
- ETC='/etc'
- #Backup to...
- DEST="/media/Backup"
- DEST_WHO="${DEST}/${WHO}"
- DEST_ETC="${DEST}${ETC}"
- #Check DEST
- if [ ! -d "$DEST" ] ; then echo "==> ${DEST} doesn't exist!" ; exit 1 ; fi
- #Backup WHO's HOME
- rsync -av --delete --link-dest="${DEST_WHO}" --exclude-from=- "${HOME}/" "${DEST_WHO} - ${TIME}" << UNWANTED
- .adobe/
- .macromedia/
- .mozilla/firefox/*/*Cache
- .mozilla/firefox/*/urlclassifier3.sqlite
- .mozilla/firefox/*/XUL.mfasl
- .thumbnails/
- .recently-used.xbel*
- *~
- UNWANTED
- #DEST_WHO is just a symbolic link
- [ -h "${DEST_WHO}" ] &&
- rm -f "${DEST_WHO}"
- ln -s "${DEST_WHO} - ${TIME}" "${DEST_WHO}"
- echo "==> ${WHO}'s HOME rsynced."
- #Backup system wide configs @ /etc
- rsync -av --delete --link-dest="${DEST_ETC}" --exclude '*~' "${ETC}/" "${DEST_ETC} - ${TIME}"
- #DEST_ETC is just a symbolic link
- [ -h "${DEST_ETC}" ] &&
- rm -f "${DEST_ETC}"
- ln -s "${DEST_ETC} - ${TIME}" "${DEST_ETC}"
- echo "==> /etc configs rsynced."
- #Note: No cleanup is done. So there *will* be bunches of snapshots flooding around @ DEST. Those are intended to be handled by yourself.
复制代码
这个脚本选择性备份用户"me"的HOME, 完全备份/etc
这种方法的好处在于你可以有许多的snapshots, 但重复的文件不会在硬盘上写两次, 而是使用链接(hard links)的形式存储
这个脚本是新鲜出炉的, 帮我想想如何改进!
从前我曾经用过很长一段时间cp, 如今升级了用rsync, 童鞋们都喜欢怎么耍? |
|