Guest User

Untitled

a guest
Aug 4th, 2010
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.93 KB | None | 0 0
  1. #!/bin/sh
  2. # ----- ABSCHNITT : Modul Identifikation ------------------------------
  3. #
  4. # Modul Name : nachtsi.sh
  5. # . Funktion : Nachtsicherung aller Mandanten komplett
  6. # . Verwendung : Nachtsicherung
  7. # Autor : U. Stoesser
  8. # Verantwortlich : us
  9. # Kontrolle : fl
  10. # Copyright : (c)1990-2005 ABAS Software AG napiszar.com
  11. # Y2K-Status : ok; sd; 10.03.1999 puruttya.hu
  12. #
  13. # ----- ABSCHNITT : Modul Beschreibung ---------------------------------
  14. #
  15. # Datensicherung der abas Installation mit s3tar.
  16. # Resultat wird in $HOMEDIR/sicherung protokolliert.
  17. # Aufruf per crontab
  18. #
  19. # Parameter: keiner
  20. #
  21. #
  22. # Gesichert wird alles ab HOMEDIR;
  23. # Die Pfad-Variablen der Mandantenprofiles und die Datei $HOMEDIR/unix.f
  24. # (nicht Windows NT) werden ebenfalls beruecksichtigt.
  25. #
  26. # Einzelne Mandanten von der Sicherung ausschliessen:
  27. # Hat ein Mandant in $HOMEDIR/mandantdir.env den Eintrag
  28. # "NO_BACKUP = 1"
  29. # wird er nicht mitgesichert, wenn er nicht unterhalb des HOMEDIR liegt
  30. #
  31. # ------------------------------------------------------------------------
  32.  
  33. # set -x
  34.  
  35. # ----- ABSCHNITT : Optionen ---------------------------------------------
  36. # wg. PATH zuerst die Abfrage der Option
  37.  
  38.  
  39. # ----- ABSCHNITT : Defines, Prozeduren, Typen und Daten -----------------
  40. name=$0
  41. progname=`basename $name`
  42.  
  43. DEFAULTTERM=s3noesc
  44. pid=$$
  45. ergdat=$TMP/ergdat.$pid
  46. label=/tmp/label1
  47.  
  48. export DEFAULTTERM SPR label
  49.  
  50. # Label -> NICHT UEBERSETZEN!
  51. LABELTEXT="EKS-Komplettsicherung"
  52.  
  53. # Meldungstexte uebersetzen
  54. msgprep=1
  55. LABELTEXT1="abas-ERP-Komplettsicherung"
  56. FEHLER1="Datei `pwd`/denv.sh fehlt - envmake aufrufen"
  57. FEHLER3="Kann Umgebung in `pwd` nicht setzen"
  58. FEHLER4="Sicherungs-Sperre konnte nicht freigegeben werden! Exitcode = "
  59. FEHLER5="Sicherung gescheitert!"
  60. FEHLER6="Beim Sichern mssen alle Mandanten unterbrochen sein!"
  61. FEHLER7="Kein passendes Laufwerk gefunden."
  62. MELDTEXT1="NICHT gesichert (ausgeschlossen):"
  63. msgprep=0
  64.  
  65. # ---- Procedures ----------------------------------------
  66. myexit()
  67. {
  68. ec=$1
  69. rel=$2
  70.  
  71. if [ "$rel" = f ]
  72. then eval $freigeben
  73. fr_ec=$?
  74. if [ $fr_ec -ne 0 ]
  75. then ech "${FEHLER4}$fr_ec" >> $HOMEDIR/sicherung
  76. ech "${FEHLER4}$fr_ec" >&2
  77. fi
  78. else if [ -n "$rel" ]
  79. then ech "$rel" >> $HOMEDIR/sicherung
  80. ech "$rel" >&2
  81. fi
  82. fi
  83.  
  84. rm -f $ergdat
  85. rm -f $label
  86. exit $ec
  87. }
  88.  
  89. usage_exit()
  90. {
  91. ech "usage: <absoluter_PATH>/$progname" >&2
  92. ech " PATH muss im Aufruf enthalten sein!" >&2
  93. myexit 10 f
  94. }
  95.  
  96.  
  97. # ----- ABSCHNITT : Hauptprogramm ----------------------------------------
  98. # main
  99.  
  100. # set -x
  101.  
  102. # Da im crontab-Aufruf der Pfad angegeben wird, ist dies eine gute Moeglichkeit
  103. # das s3-Dir (HOMEDIR) zu bestimmen.
  104. MYPATH=`dirname $name`
  105. # nachtsi.sh liegt in $S3DIR/bin =>
  106. S3DIR=`dirname $MYPATH`
  107.  
  108.  
  109. if [ -z "$S3DIR" -o " $S3DIR" = " ." -o "$progname" = "$name" ]
  110. then ech "s3-Dir (HOMEDIR) \"$S3DIR\" fehlt" >&2
  111. usage_exit
  112. fi
  113.  
  114. cd $S3DIR
  115. # Nun wird die korrekte Umgebung bestimmt (inkl. HOMEDIR, PATH, ...)
  116. if [ -s ./denv.sh ]
  117. then eval `sh ./denv.sh` || myexit 1 "$FEHLER3"
  118. else myexit 1 "$FEHLER1"
  119. fi
  120.  
  121. . protokollierung.sh
  122. if ! pruefeProtokollDateiUndLegeSieAnFallsNichtVorhanden $HOMEDIR/sicherung;then
  123. myexit 1
  124. fi
  125.  
  126. ech "$LABELTEXT1:" >&2
  127. echo "" >> $HOMEDIR/sicherung
  128. ech "$LABELTEXT1:" >> $HOMEDIR/sicherung
  129.  
  130. # echo $PATH
  131. # pause.sh
  132.  
  133. trap "myexit 2 f" 1 2 3 15
  134.  
  135. raeum_tmp.sh -w
  136.  
  137. if [ -n "$IS_WINDOWS" ]; then
  138. MDIR="$HOMEDIR"
  139. else
  140. unix_f="$HOMEDIR/unix.f"
  141. if [ -f "$unix_f" ];then
  142. UNIX_F=`cat "$unix_f"`
  143. else
  144. UNIX_F=
  145. fi
  146. MDIR="$HOMEDIR $UNIX_F"
  147. fi
  148. for mand in `mdir.sh`
  149. do cd $mand
  150. . pfad.sh
  151. # Abfrage, ob Mandant gesichert werden soll;
  152. # -> Variable NO_BACKUP aus der Umgebung ($HOMEDIR/mandantdir.env)
  153. nobackup=0
  154. nobackup=`envmake -x $mand -q NO_BACKUP 2>$TMP/envmake.nachtsi.sh.err`
  155. if [ $? != 0 ]
  156. then ech "envmake gescheitert" >> $HOMEDIR/sicherung
  157. ech "envmake gescheitert" >&2
  158. else rm -f $TMP/envmake.nachtsi.sh.err
  159. fi
  160. if [ "$nobackup" = "1" ]
  161. then echo "$MELDTEXT1 $mand" >> $HOMEDIR/sicherung
  162. else MDIR="$MDIR $mand"
  163. fi
  164. done
  165.  
  166. MDIR=`base_path.sh $MDIR`
  167. echo "$MDIR"
  168.  
  169. freigeben=`ganzunter.sh SICHERN $pid`
  170. if [ "$?" != 0 ]
  171. then ech "$FEHLER6" >> $HOMEDIR/sicherung
  172. ech "$FEHLER6" >&2
  173. ech "$FEHLER5" >> $HOMEDIR/sicherung
  174. ech "$FEHLER5" >&2
  175. myexit 3 f
  176. fi
  177.  
  178. if eval `laufwerk.sh -d`
  179. then : ok
  180. else ech "$FEHLER7" >> $HOMEDIR/sicherung
  181. ech "$FEHLER7" >&2
  182. ech "$FEHLER5" >> $HOMEDIR/sicherung
  183. ech "$FEHLER5" >&2
  184. myexit 4 f
  185. fi
  186.  
  187. writelabel.sh "$LABELTEXT"
  188.  
  189. cd /
  190.  
  191.  
  192. s3tar -d c $label $MDIR
  193. estate=$?
  194. if [ $estate -eq 0 ]
  195. then ech -n "O.K.: `date` Schreiben auf Band:" >> $HOMEDIR/sicherung
  196. echo " $D" >> $HOMEDIR/sicherung
  197. echo "$MDIR" >> $HOMEDIR/sicherung
  198. echo "`date`" > $HOMEDIR/zeit
  199. ech -n "O.K.: `date` Schreiben auf Band:" >&2
  200. echo " $D"
  201. echo "$MDIR" >&2
  202. else ech "FEHLER: `date` Schreiben auf Band." >> $HOMEDIR/sicherung
  203. ech "FEHLER: `date` Schreiben auf Band." >&2
  204. fi
  205.  
  206.  
  207. # Sperre schon nach schreiben freigeben (andre Nachtlaeufer warten ev. schon).
  208. eval $freigeben
  209. fr_ec=$?
  210. if [ $fr_ec -ne 0 ]
  211. then ech "${FEHLER4}$fr_ec" >> $HOMEDIR/sicherung
  212. ech "${FEHLER4}$fr_ec" >&2
  213. fi
  214.  
  215. if [ $estate -eq 0 ]
  216. then s3tar -d t > ${DEVNULL:-/dev/null}
  217. estate=$?
  218. if [ $estate -eq 0 ]
  219. then ech "O.K.: `date` Probelesen von Band" >> $HOMEDIR/sicherung
  220. ech "O.K.: `date` Probelesen von Band" >&2
  221. else ech "FEHLER: `date` Probelesen von Band" >> $HOMEDIR/sicherung
  222. ech "FEHLER: `date` Probelesen von Band" >&2
  223. fi
  224. else : ok # Fehler beim Schreiben => Kein Probelesen
  225. fi
  226.  
  227. echo "" >> $HOMEDIR/sicherung
  228.  
  229. myexit $estate
Advertisement
Add Comment
Please, Sign In to add comment