removed sync.sh (obsolete)
[scripts/scripts.git] / backup.sh
1 #!/bin/bash
2
3
4 # initializing some variables
5 backup_date=`date | awk '{ print $3"."$2"."$6 }'`
6 host=`hostname`
7
8 [ ! -d /mnt/nfs ] && mkdir -p /mnt/nfs
9
10 # set the backup directory
11 if [ "$host" = "gate" ] ; then
12         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
13         backup_dir="/mnt/nfs"
14 elif [ "$host" = "sparc" ] ; then
15         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
16         backup_dir="/mnt/nfs"
17 elif [ "$host" = "mobile" ] ; then
18         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
19         backup_dir="/mnt/nfs"
20 elif [ "$host" = "right-hand" ] ; then
21         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
22         backup_dir="/mnt/nfs"
23 elif [ "$host" = "hackstation" ] ; then 
24         backup_dir="/mnt/lfs/backup"
25 elif [ "$host" = "hdw" ] ; then
26         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
27         backup_dir="/mnt/nfs"
28 elif [ "$host" = "compaq" ] ; then
29         mount -tnfs hackstation:/mnt/lfs/backup /mnt/nfs
30         backup_dir="/mnt/nfs"
31 else
32         echo "pls adept the script for $host ..."
33         exit 1
34 fi
35
36 if [ ! -z "$2" ] ; then
37 if [ "$2" = "-backup_dir" -a -d $3 ] ; then
38         echo "using $3 as a backup directory ..."
39         backup_dir=$3
40 fi
41 fi
42
43 # set kernel version(s) to store their .config
44 if [ -d /usr/src/linux ] ; then
45         kernel_num=`ls /usr/src/ | grep '^linux-' | sed 's/linux-//g'`
46 fi
47
48
49 # which method to use?
50 if [ "$1" = "tar" ] ; then
51         method="tar"
52 elif [ "$1" = "dir" ] ; then 
53         method="dir"
54 elif [ -z "$1" ] ; then
55         method="tar"
56 else
57         echo "aborting!"
58         echo "usage: $0 [tar|dir] (-backup_dir /foo/bar)"
59         echo 
60         echo "tar: creates an archive called backup_${backup_date}.tar.bz2"
61         echo "dir: creates just the directory backup_${backup_date}"
62         exit 0
63 fi
64
65
66 # creating backup
67 if [ -d ${backup_dir}/${host}-backup-${backup_date} ] ; then
68         echo "u already did a backup today! remove it manually first!"
69         [ ! "$host" = "hackstation" ] && umount /mnt/nfs
70         exit 0
71 fi
72
73 mkdir $backup_dir/${host}-backup-${backup_date} && cd ${backup_dir}/${host}-backup-${backup_date}
74
75
76 #config stuff
77 echo "config stuff:"
78 mkdir ./${host}-conf && cd ./${host}-conf 
79
80 for i in $kernel_num; do
81         if [ -f /usr/src/linux-${i}/.config ] ; then
82                 echo "copying /usr/src/linux/.config"
83                 cp /usr/src/linux-${i}/.config ./$host-kernel-${i}-config
84         fi
85 done
86
87 mkdir ./etc
88 for i in init.d conf opt ppp cups udev cron.d; do
89         if [ -d /etc/$i ] ; then
90                 echo "copying /etc/$i"
91                 cp -r /etc/$i ./etc
92         fi
93 done
94
95 for i in dhcpd.conf fstab hosts host.conf hosts.allow hosts.deny lilo.conf \
96                 profile sendmail.cf resolv.conf exports fb.modes inetd.conf \
97                 xinetd.conf mp3user mp3db.conf modules.conf named.conf \
98                 modprobe.devfs modprobe.conf devfsd.conf crontab; do
99         if [ -f /etc/$i ] ; then
100         echo "copying /etc/$i"
101         cp /etc/$i ./etc
102         fi
103 done
104
105 if [ -f /etc/X11/XF86Config ] ; then
106         mkdir -p ./etc/X11
107         echo "copying /etc/X11/XF86Config*"
108         cp /etc/X11/XF86Config* ./etc/X11
109 fi
110 if [ -f /etc/X11/xorg.conf ] ; then
111         mkdir -p ./etc/X11
112         echo "copying /etc/X11/xorg.conf*"
113         cp /etc/X11/xorg.conf* ./etc/X11
114 fi
115
116
117 # specific config stuff
118
119 # gate specific config stuff!
120 if [ "$host" = "gate" ] ; then
121         
122         # mail config stuff
123         if [ -d /etc/mail ] ; then
124                 echo "copying /etc/mail directory"
125                 cp -r /etc/mail ./etc
126         fi
127
128         # mlsit procmail
129         if [ -d /home/mlist ] ; then
130                 echo "copying mlist procmail config"
131                 cp -r /home/mlist mlsit_pm_config
132         fi
133
134         # irc stuff 
135         mkdir -p ./ircd
136         [ -f /etc/opt/unrealircd/unrealircd.conf ] && \
137                 cp /etc/opt/unrealircd/unrealircd.conf ./ircd
138         
139         # minimalist stuff 
140         mkdir -p ./minimalist
141         [ -f /etc/opt/minimalist/minimalist.conf ] && \
142                 cp /etc/opt/minimalist/minimalist.conf ./minimalist
143 fi
144
145 # right-hand specific config stuff
146 if [ "$host" = "right-hand" ] ; then
147         if [ -d /var/named ] ; then
148                 mkdir ./named
149                 echo "copying dns data"
150                 cp -r /var/named/* ./named
151         fi
152         if [ -f /etc/opt/apache*/httpd.conf ] ; then
153                 mkdir ./apache
154                 cp /etc/opt/apache*/httpd.conf ./apache
155         fi
156 fi
157
158
159 # data stuff
160 echo "data stuff:"
161
162 # data backup (specific)
163 cd ${backup_dir}/${host}-backup-${backup_date}
164
165 # gate specific data 
166 if [ "$host" = "gate" ] ; then
167         
168         # mail stuff
169         for i in `ls -A /var/mail`; do
170                 mkdir -p mail_$i
171                 echo "copying mail stuff"
172                 cp /var/mail/$i ./mail_$i
173         done
174 fi
175
176 # right-hand data
177 if [ "$host" = "right-hand" ] ; then
178         mkdir ./chroot
179         for i in www cvs hdw; do
180                 if [ -d /chroot/$i ] ; then
181                         echo "copying /chroot/$i"
182                         tar -cf ./chroot/$i.tar /chroot/$i
183                 fi
184         done
185 fi
186
187 # hackstation / mobile / hdw / sparc specific data
188 if [ "$host" = "hackstation" -o "$host" = "mobile" -o "$host" = "hdw" -o "$host" = "sparc" -o "$host" = "compaq" ] ; then
189
190         # home of hackbard
191         mkdir -p ./home/hackbard
192         echo -n "copying home ..."
193         for i in temp test; do
194                 echo -n " $i,"
195                 [ -d /home/hackbard/$i ] && \
196                         cp -r /home/hackbard/$i ./home/hackbard
197         done
198         for i in xinitrc_evil xinitrc_wm .xinitrc GNUstep .Xauthority \
199                         .Xdefaults .XHkeys .signature .directfbrc .bashrc \
200                         sp12 .licq .irssi; do
201                 echo -n " $i,"
202                 [ -e /home/hackbard/$i ] && \
203                         cp -r /home/hackbard/$i ./home/hackbard
204         done
205         [ -d /home/hackbard/.mozilla ] &&
206                 cp /home/hackbard/.mozilla/*/*/bookmarks.html \
207                         mozilla-bookmarks.html
208         [ -d /home/hackbard/.ssh ] && cp -r /home/hackbard/.ssh ./home/hackbard
209         echo " done."
210         
211         # tftpboot
212         if [ -d /tftpboot ] ; then
213                 mkdir -p ./tftpboot
214                 echo "copying tftpboot stuff"
215                 cp -r /tftpboot/* ./tftpboot
216         fi
217
218         # wlan configs
219         for i in hunz_prism hunz_lucent roman_orinoco.sh; do
220                 if [ -f /root/${i}.sh ]; then
221                         mkdir -p ./root
222                         cp /root/${i}.sh ./root
223                 fi
224         done
225
226 fi
227
228
229 # data stuff (none specific)
230
231 # backing up myself
232 cp -r $HOME/scripts ./
233
234
235 # finished copying stuff, entering last backup procedure now :)))
236
237 cd $backup_dir
238
239 if [ "$method" = "tar" ] ; then
240         echo "creating tar"
241         tar cf ./${host}-backup-${backup_date}.tar \
242                                 ./${host}-backup-${backup_date}
243         rm -r ./${host}-backup-${backup_date}
244         bzip2 ./${host}-backup-${backup_date}.tar
245 fi
246
247
248 # end! umounting nfs shared backup directory
249 if [ "$host" != "hackstation" ] ; then
250         echo "umounting nfs backup - dir"
251         cd $HOME && umount /mnt/nfs
252 fi
253
254 echo "done ..."