#! /bin/bash set -ex t=/tmp/backup-rpm.$$ trap "rm -rf $t" EXIT rm -rf $t mkdir $t rpm -qa|sort >$t/rpm-qa rpm -qal|sort -u >$t/rpm-qal (set +e;rpm -Va >$t/rpm-Va) ( (find / -xdev -print -type d -print;cat $t/rpm-qal)|sort|uniq -u sed 's#^[^/]*##' <$t/rpm-Va touch $t/patch.list for orig in `find / -xdev -name "*-orig"`;do base="`echo $orig|sed 's/-orig$//'`" if [ ! -f "$base" ];then continue;fi (set +e;diff -u "$orig" "$base" >"$base".patch) echo "$orig" echo "$base" echo "$base".patch|tee -a $t/patch.list done )|grep -v '^\(/boot/\|/dev/\|/etc/rc[.]d/rc[0-9][.]d/\|/lib/modules/[^/]*/modules[.]\|/root/\|/tmp/\|/usr/lib/perl5/\|/usr/src/redhat/\|/var/cache/\|/var/lib/rpm/\|/var/log/\|/var/run/\|/var/spool/\|/var/lock/\|/usr/share/ntop/\|/usr/lib/locale/locale-archive\|/var/lib/slocate/slocate.db\|/usr/share/man/\|/etc/aliases.db\|/var/tmp/\|/etc/prelink.cache\|/etc/sgml/\|/home/\|/usr/include/tags\|/usr/lib/IPTables-IPv4/\|/usr/lib/python2.3/\|/usr/lib/rpmdb\|/usr/share/texmf/\|/usr/share/yum-cli\|/var/db/nscd/\)' \ |grep -v '^(contains no files)$' \ |(echo $t/rpm-qa;cat) \ |sort -u|sed 's#^/##'|(cd /;set +e;xargs tar cf -) cat $t/patch.list|xargs rm -f