Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Shell Script unter UNIX

  1. #1
    cedman
    Gast

    Shell Script unter UNIX

    ich muss ein shell-script (basierend auf ksh/korn shell) auf nem UNIX system schreiben das folgende dinge tun muss:

    - durch einen laufenden daemon werden bei einem serverausfall diverse files (alert-files) erstellt, welche immer den gleichen namen haben und immer im gleichen ordner erscheinen. das script soll nun dies überprüfen indem es checkt, ob irgendeines dieser files existiert - falls ja, soll es in einem bereits vorhandenen .txt file eine zeile hineinschreiben. diese alert-files sind also nur vorhanden, wenn ein server ausfällt.
    es darf diesen eintrag jedoch nur einmal machen, d.h. läuft z.b. all 5min und wenn ein alert-file generiert wurde, darf es diesen eintrag nicht jedesmal machen


    da ich programmiertechnisch ein blutiger anfänger bin wollte ich fragen, ob irgendjemand mir vielleicht ein paar tipps/hinweise geben kann wie das ganze funktionieren könnte. vielleicht kennt jemand eine gute seite wo z.b. die wichtigsten shell-syntax beschrieben sind.

    thx4help


    PS: ich habe einfach mal im allgemeinen forum gepostet, falls es ein besseres gäbe, wäre ich um eine verschiebung sehr dankbar
    Geändert von cedman (23.08.04 um 10:31 Uhr)

  2. #2
    Professional Linux-Newbie Avatar von Alexiel
    Registriert seit
    Aug 2004
    Ort
    FFM
    Beiträge
    74
    Tutorials findest du per Google...

    checken, ob eine Datei existiert:
    Code:
    if [ -f /var/log/alert ] ; then
      echo "file exists"
    fi
    dann einfach nach Eintrag in die ini-Datei eine Datei anlegen, zB PROCESS_1.LOCK,
    die du beim Starten des Prozesses immer löschst.

    ini-Datei:
    einfachster Fall: anhängen

    echo "Zeile und wert" >> /etc/process.ini
    Und sonst so?

  3. #3
    cedman
    Gast
    jo danke, ich hab gerade nach meinem post ein gutes tutorial gefunden und auch ein entsprechendes script zum laufen gebracht. nur besteht weiterhin folgendes problem

    es darf diesen eintrag jedoch nur einmal machen, d.h. läuft z.b. all 5min und wenn ein alert-file generiert wurde, darf es diesen eintrag nicht jedesmal machen
    es ist nämlich so, dass neben diesem script noch ein daemon läuft, der überprüft, ob dieses .ini file existiert und ob etwas darin steht -> wenn ja wird automatisch ein mail an die admins versendet. der daeom ist zumindest so intelligent, dass wenn sich das .ini file seit dem letzten check nicht verändert hat, er auch nichts weiter tut. schreibt das script jedoch jedesmal eine neue zeile, weil das alert-file immer noch existiert (es soll/wird dann auch eine weile existieren) werden die admins vollgespamt - das soll eben nicht passieren.
    wenn der admin das problem behoben hat löscht er die zu überprüfenden files selber (das je nach dem 30min, 1tag usw dauern)

  4. #4
    Professional Linux-Newbie Avatar von Alexiel
    Registriert seit
    Aug 2004
    Ort
    FFM
    Beiträge
    74
    genau das meinte ich ja mit dem LOCK-File oben, auch wenn der Name vielleicht
    nicht ganz passt. Jedenfalls legst du mit dem Script beim ersten Mal Schreiben
    diese Datei an. Wenn das Script startet schaust du immer nach, ob die Datei
    existiert oder nicht.

    Zu beachten ist, dass die "Admins" die Datei dann auch immer löschen müssen.
    Eventuell hilft dann ein Crontab-Script, welches periodisch prüft, ob das alert-File
    vorhanden ist und ggfs dann dieses LOCK-File löscht.
    Und sonst so?

  5. #5
    Script-Terrorist Avatar von Blackhawk
    Registriert seit
    Nov 2003
    Ort
    Ehningen
    Beiträge
    1.346
    Fuer solche Monitoringprozesse empfehle ich mal NAGIOS, siehe unter http://www.nagios.org/
    Servus und bis bald,

    Blackhawk
    ==================================================
    Linux - manchmal steh ich nachts auf, und installier mir noch eins...

  6. #6
    cedman
    Gast
    also ich hab mal ein bisschen rumprobiert und bin nun auf folgendes problem gestossen:

    ich führe einen befehl aus und möchte das resultat von diesem mit einer zeile in einem textfile vergleichen - wie geht das?

    also der befehl sieht so aus:
    Code:
    #!/bin/ksh
    set -x
    touch alerts.txt
    if [ `cat alerts.txt | grep 'ALERT core exists' | `istat core | grep modified |
    wc -l` -eq 0 ]
      then
            echo "ALERT core exists `istat core | grep modified` by User $USER">> alerts.txt
    was ich mache , ist zu prüfen wann das file "core" (wenn es überhaupt existiert) zuletzt geändert wurde - diese information (`istat core | grep modified`) wird dann in das alerts.txt file geschrieben. ABER wenn dies bereits getan wurde UND die zeile im alerts.txt file identisch mit dem resultat des ausgeführten befehls (echo "ALERT core exists `istat core | grep modified` by User $USER">> alerts.txt) wäre, DANN soll nichts geschehen!

    ich hoffe das war einigermassen verständlich

    thx im voraus
    Geändert von cedman (27.08.04 um 13:27 Uhr)

  7. #7
    cedman
    Gast
    ****push****

Ähnliche Themen

  1. shell script soll benutzer wechseln
    Von fakespace im Forum Linux Allgemein
    Antworten: 12
    Letzter Beitrag: 02.06.04, 08:49
  2. Problem mit Festplatte
    Von gaansch im Forum stationäre Hardware
    Antworten: 6
    Letzter Beitrag: 27.01.04, 20:38
  3. Shell Script in Verbindung mit cron
    Von Schnitz im Forum Linux Allgemein
    Antworten: 7
    Letzter Beitrag: 30.12.03, 18:13
  4. Shell Script für Backups?
    Von PhobosUT im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 26.05.03, 21:10
  5. shell - script
    Von lehrling2 im Forum Linux als Server
    Antworten: 5
    Letzter Beitrag: 23.06.02, 14:16

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •