Merge branch 'master' of ssh://vps.jankratochvil.net/var/lib/git/nethome
[nethome.git] / bin / backup-rpm
1 #! /bin/bash
2 set -ex
3 t=/tmp/backup-rpm.$$
4 trap "rm -rf $t" EXIT
5 rm -rf $t
6 mkdir $t
7 rpm -qa|sort >$t/rpm-qa
8 rpm -qal|sort -u >$t/rpm-qal
9 (set +e;rpm -Va >$t/rpm-Va)
10 (
11         (find / -xdev -print -type d -print;cat $t/rpm-qal)|sort|uniq -u
12         sed 's#^[^/]*##' <$t/rpm-Va
13         touch $t/patch.list
14         for orig in `find / -xdev -name "*-orig"`;do
15                 base="`echo $orig|sed 's/-orig$//'`"
16                 if [ ! -f "$base" ];then continue;fi
17                 (set +e;diff -u "$orig" "$base" >"$base".patch)
18                 echo "$orig"
19                 echo "$base"
20                 echo "$base".patch|tee -a $t/patch.list
21                 done
22         )|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/\)' \
23         |grep -v '^(contains no files)$' \
24         |(echo $t/rpm-qa;cat) \
25         |sort -u|sed 's#^/##'|(cd /;set +e;xargs tar cf -)
26 cat $t/patch.list|xargs rm -f