#!/bin/bash -x OUTPUTPREFIX="/raid/backup/backup-$(hostname)-$(date +%F).cpio.gz." mkdir -p "$(dirname "$OUTPUTPREFIX")" time comm -23 <( # All files on /, less a few stupid paths. We want to back up most of these. find / -xdev \ -wholename /usr/portage -prune \ -o -wholename /tmp -prune \ -o -wholename /var/tmp -prune \ -o -wholename /usr/src -prune \ -o -wholename /home/chkno/linux -prune \ -o -wholename /home/chkno/media -prune \ -o -wholename /home/bulk/.mldonkey/incoming -prune \ -o -wholename /home/bulk/.mldonkey/temp -prune \ -o -wholename /lib/modules -prune \ -o -wholename /var/cache/edb -prune \ -o -wholename /var/cache/squid -prune \ -o -wholename /media -prune \ -o -name .ccache -prune \ -o -name '*.py[co]' \ -o -print | sort ) <( # All non-modified portage-mannaged files # Ideally: # equery files --filter=obj,-mod '=*' comm -23 <( # All files managed by portage. We DONT want most of these. equery list | sed 's/^/=/' | xargs -n 1 equery files | sort ) <( # Modified files. We DO want most of these. equery list | sed 's/^/=/' | xargs -n 1 equery check 2>&1 | sed -n 's/!!! \(.*\) has incorrect md5sum/\1/p' | sort ) ) | cpio -o -H newc | gzip -v --best | split -b $((128*1024*1024)) --verbose - "$OUTPUTPREFIX"