TEXT   55

snapshots

Guest on 24th July 2022 03:44:07 PM

  1. #!/bin/ksh93
  2.  
  3. BASEDIR=$0
  4. BASEDIR=${BASEDIR%/*}
  5. source ${BASEDIR}/.info
  6.  
  7. COMPANY="MyCompany"
  8.  
  9. # wieviele der letzten N snapshots angezeigt werden sollen
  10. integer HOW_MANY="14"
  11.  
  12. if [ -n "$QUERY_STRING" ]; then
  13.         integer N="${QUERY_STRING##*num=}"
  14.         if (( N > 0 )); then
  15.                 HOW_MANY=N
  16.         fi
  17. fi
  18.  
  19. print "Content-type: text/html; charset=iso-8859-1\n"
  20.  
  21. printf '<html><head><title>Windows Server Snapshot Übersicht</title></head><body>'
  22.  
  23. export LC_TIME=de LC_NUMERIC=de
  24.  
  25. for DOM in $DOMS ; do
  26.         printf '<h1>Snapshots von %s (xen: %s)</h1>\n' "${HOSTS[$DOM]}" "$DOM"
  27.         CMD="zfs list -t snapshot -s creation -H -o name,used,referenced,creation"
  28.         integer TMANY=HOW_MANY
  29.         integer COUNT=$($CMD | fgrep "${ZVOLS[$DOM]}@" | wc -l)
  30.         if (( COUNT < HOW_MANY )); then
  31.                 TMANY=COUNT
  32.         fi
  33.         printf '<p>Die letzten %d von <a href="snapshots?num=%d">%d</a> snapshots:</p>\n' $TMANY $COUNT $COUNT
  34.         print '<table><thead><tr><th>Snapshot</th><th>Größe</th><th>Gesamt</th><th>Erstellt am</th></tr></thead><tbody>'
  35.         $CMD | fgrep "${ZVOLS[$DOM]}@" | tail -$TMANY | \
  36.         while read SNAME USED SIZE TIME ; do
  37.                 printf '<tr><td>%s</td><td>%s</td><td>%s</td><td><code>%s</code></td></tr>\n' "$SNAME" "$USED" "$SIZE" "$TIME"
  38.         done
  39.         print '</tbody></table>'
  40. done
  41.  
  42. print '
  43. <h3>Info</h3>
  44. <p>Die Windows-Server werden i.d.R. täglich um 03.00 Uhr automatisch per
  45. Aufgabenplanung runtergefahren. Gegen 03.10 Uhr werden
  46. automatisch per cronjob von sol (Solaris) die Snapshots erstellt und
  47. anschließend die Windows-Server wieder hochgefahren.</p>
  48. <p>Bevor die snapshots erstellt werden, prüft der cronjob, ob die Windows-Server
  49. tatsächlich runtergefahren sind. Sind sie es nicht, prüft er alle 5min bis
  50. max. um 04.00 Uhr. Sind selbige dann immer noch nicht unten (state
  51. <code>shut off</code>),
  52. bricht der cronjob ab - es wird dann kein snapshot für diesen Tag und Server
  53. erstellt.
  54. </p>
  55. <p>Siehe auch:</p>
  56. <ul>
  57. <li>ts: Systemsteuerung - Verwaltung - Aufgabenplanung
  58. (Aufgabenplanungsbibliothek %s)</li>
  59. <li>sbs: Systemsteuerung - Geplante Tasks - shutdown</li>
  60. <li>sol: + crontab -l</li>
  61. </ul>
  62. <p>Zurück zur <a href="status">Status-Seite</a>.</p>
  63. </body></html>
  64. '

Raw Paste


Login or Register to edit or fork this paste. It's free.