different backups for primary and secondary
[scripts/scripts.git] / backup.sh
index d40470d..07a71c0 100755 (executable)
--- a/backup.sh
+++ b/backup.sh
@@ -1,46 +1,38 @@
 #!/bin/bash
 
+# variables
+remote_host=right-hand
+remote_dir=/mnt/big/backup
+local_mount=/mnt/nfs
+local_backupdir=/mnt/bunker/backup
 
 # initializing some variables
 backup_date=`date | awk '{ print $3"."$2"."$6 }'`
 host=`hostname`
 
-
-# set the backup directory
-if [ "$host" = "gate" ] ; then
-       #mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
-       backup_dir="/mnt/nfs"
-elif [ "$host" = "sparc" ] ; then
-       #mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
-       backup_dir="/mnt/nfs"
-elif [ "$host" = "mobile" ] ; then
-        #mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
-        backup_dir="/mnt/nfs"
-elif [ "$host" = "right-hand" ] ; then
-       #mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
-       backup_dir="/mnt/nfs"
-elif [ "$host" = "hackstation" ] ; then 
-       backup_dir="/mnt/lfs/backup"
-elif [ "$host" = "hdw" ] ; then
-       backup_dir="/mnt/nfs"
+mounted=0
+res=1
+if [ -d $remote_dir ] ; then
+       backup_dir=/mnt/big/backup
+       res=0
 else
-       echo "pls adept the script for $host ..."
-       exit 1
-fi
-
-if [ ! -z "$2" ] ; then
-if [ "$2" = "-backup_dir" -a -d $3 ] ; then
-       echo "using $3 as a backup directory ..."
-       backup_dir=$3
-fi
+       if [ -d $local_backupdir ] ; then
+               backup_dir=$local_backupdir
+               res=0
+       else
+               mkdir -p $local_mount
+               mount -tnfs ${remote_host}:${remote_dir} $local_mount
+               res=$?
+               backup_dir=$local_mount
+               mounted=1
+       fi
 fi
 
-# set kernel version(s) to store their .config
-if [ -d /usr/src/linux ] ; then
-       kernel_num=`ls /usr/src/ | grep '^linux-' | sed 's/linux-//g'`
+if [ "$res" != "0" ] ; then
+       echo "something failed detrmining the backup dir $backup_dir ..."
+       exit
 fi
 
-
 # which method to use?
 if [ "$1" = "tar" ] ; then
        method="tar"
@@ -57,10 +49,22 @@ else
        exit 0
 fi
 
+if [ ! -z "$2" ] ; then
+       if [ "$2" = "-backup_dir" -a -d $3 ] ; then
+               echo "using $3 as a backup directory ..."
+               backup_dir=$3
+       fi
+fi
+
+# set kernel version(s) to store their .config
+if [ -d /usr/src/linux ] ; then
+       kernel_num=`ls /usr/src/ | grep '^linux-' | sed 's/linux-//g'`
+fi
 
 # creating backup
 if [ -d ${backup_dir}/${host}-backup-${backup_date} ] ; then
        echo "u already did a backup today! remove it manually first!"
+       [ ! "$host" = "hackstation" ] && umount /mnt/nfs
        exit 0
 fi
 
@@ -72,31 +76,24 @@ echo "config stuff:"
 mkdir ./${host}-conf && cd ./${host}-conf 
 
 for i in $kernel_num; do
-       if [ -f /usr/src/linux-${i}*/.config ] ; then
+       if [ -f /usr/src/linux-${i}/.config ] ; then
                echo "copying /usr/src/linux/.config"
-               cp /usr/src/linux-${i}*/.config ./$host-kernel-${i}-config
+               cp /usr/src/linux-${i}/.config ./$host-kernel-${i}-config
        fi
 done
 
 mkdir ./etc
-for i in conf opt ppp; do
+for i in init.d conf opt ppp cups udev cron.d; do
        if [ -d /etc/$i ] ; then
                echo "copying /etc/$i"
                cp -r /etc/$i ./etc
        fi
 done
 
-mkdir ./etc/init.d
-for i in `ls -A /etc/conf`; do
-       if [ -f /etc/init.d/$i ] ; then
-               echo "copying /etc/init.d/$i"
-               cp /etc/init.d/$i ./etc/init.d
-       fi
-done
-
 for i in dhcpd.conf fstab hosts host.conf hosts.allow hosts.deny lilo.conf \
                profile sendmail.cf resolv.conf exports fb.modes inetd.conf \
-               xinetd.conf; do
+               xinetd.conf mp3user mp3db.conf modules.conf named.conf \
+               modprobe.devfs modprobe.conf devfsd.conf crontab ethers; do
        if [ -f /etc/$i ] ; then
        echo "copying /etc/$i"
        cp /etc/$i ./etc
@@ -108,6 +105,17 @@ if [ -f /etc/X11/XF86Config ] ; then
        echo "copying /etc/X11/XF86Config*"
        cp /etc/X11/XF86Config* ./etc/X11
 fi
+if [ -f /etc/X11/xorg.conf ] ; then
+       mkdir -p ./etc/X11
+       echo "copying /etc/X11/xorg.conf*"
+       cp /etc/X11/xorg.conf* ./etc/X11
+fi
+
+# crontabs
+if [ -d /var/spool/cron/crontabs ] ; then
+       echo "copying crontab files"
+       cp -r /var/spool/cron/crontabs .
+fi
 
 
 # specific config stuff
@@ -121,23 +129,37 @@ if [ "$host" = "gate" ] ; then
                cp -r /etc/mail ./etc
        fi
 
+       # mlsit procmail
+       if [ -d /home/mlist ] ; then
+               echo "copying mlist procmail config"
+               cp -r /home/mlist mlsit_pm_config
+       fi
+
        # irc stuff 
-       mkdir -p ./irc/networks
-       [ -f /opt/unreal/etc/unrealircd.conf ] && \
-               cp /opt/unreal/etc/unrealircd.conf ./irc/unrealircd_new.conf
-       for i in ircd.conf networks/hackdaworld.network \
-                       networks/unrealircd.conf; do
-               [ -f /home/irc/Unreal3.1.1/$i ] && \
-                       cp /home/irc/Unreal3.1.1/$i ./irc/$i
-       done
-       [ -f /home/irc/services_new/services.conf ] && \
-               cp /home/irc/services_new/services.conf ./irc
-       for i in rebecka defcon_one elin; do
-               [ -f /home/irc/eggdrop/$i ] && cp /home/irc/eggdrop/$i* ./irc
-       done
+       mkdir -p ./ircd
+       [ -f /etc/opt/unrealircd/unrealircd.conf ] && \
+               cp /etc/opt/unrealircd/unrealircd.conf ./ircd
+       
+       # minimalist stuff 
+       mkdir -p ./minimalist
+       [ -f /etc/opt/minimalist/minimalist.conf ] && \
+               cp /etc/opt/minimalist/minimalist.conf ./minimalist
+fi
 
+# right-hand specific config stuff
+if [ "$host" = "right-hand" ] ; then
+        if [ -d /var/named ] ; then
+               mkdir ./named
+                echo "copying dns data"
+                cp -r /var/named/* ./named
+        fi
+       if [ -f /etc/opt/apache*/httpd.conf ] ; then
+               mkdir ./apache
+               cp /etc/opt/apache*/httpd.conf ./apache
+       fi
 fi
 
+
 # data stuff
 echo "data stuff:"
 
@@ -147,58 +169,69 @@ cd ${backup_dir}/${host}-backup-${backup_date}
 # gate specific data 
 if [ "$host" = "gate" ] ; then
        
-       # minimalist and mail stuff
-       mkdir -p minimalist_spool mail_admin mail_hackbard mail_mlist
-       echo "copying minimalist and mail stuff"
-       cp -r /opt/minimalist/spool/* ./minimalist_spool
-       cp -r /home/hackbard/* ./mail_hackbard
-       cp -r /home/admin/* ./mail_admin
-       cp /var/mail/mlist ./mail_mlist
-
-       # www and cvs stuff
-       mkdir chroot
-       for i in www cvs; do
-               echo "copying /chroot/$i"
-               tar -cf ./chroot/$i.tar /chroot/$i
+       # mail stuff
+       for i in `ls -A /var/mail`; do
+               mkdir -p mail_$i
+               echo "copying mail stuff"
+               cp /var/mail/$i ./mail_$i
        done
-       tar -cf ./mlist-archive.tar /home/mlist/public_html
+fi
 
+# right-hand data
+if [ "$host" = "right-hand" ] ; then
+       mkdir ./chroot
+       for i in www cvs; do
+               if [ -d /chroot/$i ] ; then
+                       echo "copying /chroot/$i"
+                       tar -cf ./chroot/$i.tar /chroot/$i
+               fi
+       done
 fi
 
-# hackstation specific data
-if [ "$host" = "hackstation" -o "$host" = "mobile" -o "$host" = "hdw" -o "$host" = "sparc" ] ; then
+# hackstation / mobile / hdw / sparc specific data
+if [ "$host" = "hackstation" -o "$host" = "mobile" -o "$host" = "hdw" -o "$host" = "sparc" -o "$host" = "compaq" ] ; then
 
        # home of hackbard
        mkdir -p ./home/hackbard
-       echo "copying home"
-       for i in projects software store; do
+       echo -n "copying home ..."
+       for i in temp test; do
+               echo -n " $i,"
                [ -d /home/hackbard/$i ] && \
                        cp -r /home/hackbard/$i ./home/hackbard
        done
        for i in xinitrc_evil xinitrc_wm .xinitrc GNUstep .Xauthority \
-                       .Xdefaults .signature .directfbrc; do
-               [ -f /home/hackbard/$i ] && \
+                       .Xdefaults .XHkeys .signature .directfbrc .bashrc \
+                       sp12 .licq .irssi; do
+               echo -n " $i,"
+               [ -e /home/hackbard/$i ] && \
                        cp -r /home/hackbard/$i ./home/hackbard
        done
-       cp -r /home/hackbard/.ssh ./home/hackbard
+        [ -d /home/hackbard/.mozilla ] &&
+               cp /home/hackbard/.mozilla/*/*/bookmarks.html \
+                       mozilla-bookmarks.html
+       [ -d /home/hackbard/.ssh ] && cp -r /home/hackbard/.ssh ./home/hackbard
+       echo " done."
+       
+       # tftpboot
+       if [ -d /tftpboot ] ; then
+               mkdir -p ./tftpboot
+               echo "copying tftpboot stuff"
+               cp -r /tftpboot/* ./tftpboot
+       fi
+
+       # wlan configs
+       for i in hunz_prism hunz_lucent roman_orinoco.sh; do
+               if [ -f /root/${i}.sh ]; then
+                       mkdir -p ./root
+                       cp /root/${i}.sh ./root
+               fi
+       done
 
 fi
 
 
 # data stuff (none specific)
 
-# extensions, stored on root 
-if [ -d /root/${host}_exts ] ; then 
-       echo "copying ${host}_exts"
-       cp -r /root/${host}_exts ./
-fi
-
-# dying software
-if [ -d /root/${host}_bunker ] ; then
-       echo "copying ${host}_bunker"
-       cp -r /root/${host}_bunker ./
-fi
-
 # backing up myself
 cp -r $HOME/scripts ./
 
@@ -217,9 +250,9 @@ fi
 
 
 # end! umounting nfs shared backup directory
-if [ "$host" != "hackstation" ] ; then
+if [ "$mounted" = "1" ] ; then
        echo "umounting nfs backup - dir"
-       #cd $HOME && umount /mnt/nfs
+       cd $HOME && umount $local_mount
 fi
 
 echo "done ..."