source: MondoRescue/branches/3.2/mondo/src/restore-scripts/mondo/stabraw-me@ 3510

Last change on this file since 3510 was 1315, checked in by Bruno Cornec, 17 years ago

Log files are now consistent: mondoarchive.log for mondoarchive (containing also mindi.log) and mondorestore.log for mondorestore (copied from /tmp (ram) to /var/log (disk) at the end of the restore)
One include has been created for each bianry containing only that declaration ofr the moment, but which will be extended to include all local definitions (ps_* e.g.)
Doc updated accordingly
LOGFILE in restore process is now passed in the environment and not duplicated anymore
LogIt is not redifined either
LOGFILE should be put in environment by mondoarchive for mindi's usage but that's a step left for later.

  • Property svn:keywords set to Id
  • Property svn:unix-mode set to 755
File size: 3.5 KB
Line 
1#!/bin/sh
2#
3# $Id: stabraw-me 1315 2007-04-16 14:13:59Z bruno $
4#
5#####################################################################
6
7
8QuitIfNotFound() {
9 if [ ! -f "$1" ] ; then
10 LogIt "(stabraw-me) Where's $1? I cannot continue." 1
11 exit 1
12 fi
13}
14
15LocateOldFstab() {
16 old_fstab=""
17 if [ -f "/mnt/RESTORING/etc/fstab" ] ; then
18 LogIt "No need for fstab search." 2
19 old_fstab=/mnt/RESTORING/etc/fstab
20 return 0
21 elif [ -f "/mnt/cdrom/archives/CUCKOO" ] ; then
22 LogIt "Because I'm cuckoo, I'll stop searching." 2
23 return 1
24 else
25 LogIt "Looking for fstab. Please wait." 2
26 fstab_list=`find /mnt/RESTORING -name fstab 2> /dev/null`
27 fi
28 where_they_live=""
29 for curr_fstab in $fstab_list ; do
30 curr_dir=`echo $curr_fstab | gawk '{i=index($0,"/fstab");print substr($0,0,i-1);}'`
31 resA=$?
32 curr_inetd=`find $curr_dir -name inetd.conf | grep -v "linuxconf"`
33 resB=$?
34 if [ "$resA" -eq "0" ] ; then
35 if [ "$where_they_live" != "" ] ; then
36 LogIt "Two directories found! One is $where_they_live, the other $curr_dir" 1
37 LogIt "I don't know which to choose. I'll abort the search." 1
38 return 1
39 fi
40 where_they_live=$curr_dir
41 fi
42 done
43 if [ "$where_they_live" = "" ] ; then
44 LogIt "Cannot find any folder which holds fstab _and_ inetd.conf" 1
45 return 1
46 fi
47 old_fstab=$where_they_live/fstab
48 LogIt "fstab found." 2
49 return 0
50}
51
52
53
54MakeBackups() {
55 LogIt "Backing up original files before modifying them..." 2
56 for i in $old_fstab ; do
57 LogIt "Backing up $i"
58 [ -e "$i" ] && [ ! -e "$i.prehack" ] && cp -f $i $i.prehack
59 done
60}
61
62
63RestoreBackups() {
64 LogIt "Restoring original versions of modified files..." 2
65 cp -f $old_fstab /tmp/fstab.ugly
66 for i in $old_fstab ; do
67 LogIt "Restoring $i"
68 [ -f "$i.prehack" ] && cp $i.prehack $i -f
69 done
70}
71
72
73# --------------------------------- main -------------------------------
74
75if [ "$#" -ne "1" ] ; then
76 LogIt "stabraw-me </dev/bootdrive>"
77 exit 1
78fi
79
80bootdrive=$1
81
82LogIt "stabraw-me --- starting"
83LocateOldFstab
84old_mountlist=/tmp/mountlist.original
85new_mountlist=/tmp/mountlist.txt
86QuitIfNotFound $old_mountlist
87QuitIfNotFound $new_mountlist
88QuitIfNotFound $old_fstab
89LogIt "OK so far: I've found all the files I need." 2
90
91MakeBackups
92
93new_fstab=/tmp/fstab.new
94[ ! -e "$new_fstab" ] && new_fstab=/tmp/fstab
95
96LogIt "Modifying fstab..." 2
97outval=0
98hack-fstab $old_mountlist $old_fstab $new_mountlist $new_fstab
99res=$?
100if [ "$res" -ne "0" ] ; then
101 echo "Warning - hack-fstab failed"
102 outval=$(($outval+$res))
103fi
104
105if [ "$outval" -ne "0" ] ; then
106 LogIt "Fstab modifications failed" 3
107 RestoreBackups
108else
109 LogIt "Modifications succeeded." 2
110 LogIt "Copying over $old_fstab" 2
111 cp -f $new_fstab $old_fstab
112 outval=$(($outval+$?))
113 if [ "$outval" -ne "0" ] ; then
114 LogIt "Modifications (copying) failed. Restoring from backups." 3
115 RestoreBackups
116 else
117 LogIt "Fstab modified ok." 2
118 fi
119 cd $where_they_live
120 cd ..
121 raw-MR $bootdrive
122 mbr_res=$?
123 if [ "$mbr_res" -ne "0" ] ; then
124 LogIt "MBR failed to be installed." 3
125 else
126 LogIt "MBR installed ok." 2
127 fi
128fi
129
130if [ "$outval" -ne "0" ] ; then
131 LogIt "Error(s) occurred during mbr/fstab processing. "
132 LogIt "Restoring originals. "
133 RestoreBackups
134elif [ "$mbr_res" -ne "0" ] ; then
135 LogIt "Fstab was modified OK but mbr failed to be installed. "
136 outval=$(($outval+1))
137else
138 LogIt "/etc/fstab was modified ok; mbr was installed ok, too. "
139fi
140LogIt "stabraw-me --- leaving"
141echo -en "\n\n\n"
142exit $outval
143
144
145
146
147
Note: See TracBrowser for help on using the repository browser.