#!/bin/sh -e # move backup to /var if [ -d /home/martin/backup ] && [ ! -d /var/backups/martin ]; then cp -a /home/martin/backup /var/backups/martin rm -rf /home/martin/backup fi # need bzr and postfix for the setup below DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends postfix openssh-server bzr python-paramiko # root's ssh stuff if [ ! -d /root/.ssh ] && [ -d /home/martin/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh cp /home/martin/.ssh/id_rsa* /home/martin/.ssh/known_hosts /home/martin/.ssh/config /root/.ssh/ fi # restore /etc bzr branch, rescue the files we do not want to restore # completely cd /etc if [ ! -d /etc/.bzr ]; then for i in passwd group shadow fstab; do [ -e $i.originst ] || cp $i $i.originst done [ -e /backup-etc ] || bzr get bzr+ssh://martin@piware.de/home/martin/backup/`hostname`-etc /backup-etc cp -av /backup-etc/* /etc/ cp -av /backup-etc/.bzr/ /etc/ rm -rf /backup-etc chmod 600 /etc/ssh/ssh_*_key chmod 640 /etc/shadow chown root:shadow /etc/shadow chmod 700 /etc/ssl/private chmod 640 /etc/ssl/private/ssl-cert-* chown root:ssl-cert /etc/ssl/private/ssl-cert* # only restore dchroot part into fstab grep -A 200 "^#.*chroot" fstab >> fstab.originst || true mv fstab.originst fstab # only restore the human users from passwd/group for i in passwd group; do perl -naF: -e 'print if $F[2] > 1000 && $F[2] < 60000' $i >> $i.originst mv $i.originst $i done # only restore some passwords from shadow egrep 'martin|netti|joe' shadow >> shadow.originst mv shadow.originst shadow chown root:shadow shadow chmod 640 shadow fi # update postfix for new configuration newaliases /etc/init.d/postfix restart # other setup dpkg -i /home/martin/download/libdvdcss2_*deb || true locale-gen ru_RU ru_RU.UTF-8 # remove packages that we do not need killall apt-get || true # cronjob goo apt-get purge -y --auto-remove hplip brltty bluez-cups gnome-accessibility-themes gnome-mag gnome-orca onboard tomboy ttf-lao ttf-thai-tlwg || true rm -f /etc/rcS.d/*pcmcia* /etc/rcS.d/*ppp* # install packages from network sources killall apt-get || true apt-get update DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y --force-yes vim bzrtools bzr-svn patchutils offlineimap wipe diffstat gtimelog jigdo-file libtool devhelp python-doc manpages-dev gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-ffmpeg weechat weechat-plugins weechat-scripts dpatch wdiff debian-goodies ccache subversion listadmin quilt python-dev cryptsetup mutt editmoin lintian python-gtk2-doc fakechroot ubuntu-dev-tools dput dchroot fakechroot imagemagick pngquant pdfjam easytag rsnapshot texlive-lang-german texlive-latex-extra python-coverage powertop sane-utils vim-scripts libtemplate-perl kvm bzr-buildpackage git-core greasemonkey build-essential fakeroot devscripts libglib2.0-doc libgtk2.0-doc apt-get -y build-dep postgresql-8.4 hal cups apport jockey calibre gvfs devicekit-disks devicekit-power # crontabs crontab -u martin - </dev/null EOF if [ -x /usr/bin/gtimelog ]; then patch /usr/bin/gtimelog ~martin/archiv/gtimelog.tuesday.patch fi