Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Autoamtischer Filetransfer via Script

  1. #1
    loerdy
    Gast

    Autoamtischer Filetransfer via Script

    Guten Tag,

    ich bin nun wahrlich kein Shell Profi, aber hin und wieder wäre es ganz nützlich ...

    Ich habe einen Virenscanner unter Linux laufen, der sich leider nicht
    selbständig updaten kann. Die Updates muss ich immer selber per hand
    in ein bestimmtest Verzeichnis kopieren, den Dienst einmal beenden und dann neustarten. Nun möchte ich das ganze automatisieren, den Ablauf
    stelle ich mir so vor:

    Auf einem NT Server existiert eine freigabe names "Antivir" und der
    Benutzer antivir dort lege ich die aktuellen Pattern ab.

    Das Script soll nun folgendes tun:

    Schritt 1:

    mounten der Freigabe ( das kriege ich hin )

    Schritt 2:

    Vergleichen, ob die Patterndatei, die in der Freigabe bereits
    auf dem Linuxrechner existiert, oder nicht, bzw ob die Datei auf
    dem NT Server aktueller ist.

    Schritt 3:

    entweder:

    Ist die Datei nicht neuer, soll das Verzeichnis wieder unmountet werden
    und mir eine Mail geschickt werden, das die Definitionen auf dem neuesten
    Stand sind --> Fertig.

    oder:

    Die Datei auf dem Server ist neuer, und es wird zunächst
    der Mailscan Dienst beendet, die alte Datei in ein Backup Verzeichnis verschoben und die neue Datei in das Verzeichnis kopiert.
    Anschliessend der Dienst neu gestartet, und dann eine Mail an mich gesendet das das Update erfolgreichgewesen ist.

    Das kann eigentlich nicht so schwer sein, aber ich hab da keinen Schimmer von ..

    Wäre sehr nett wenn mir da jemand helfen könnte ...

    es dankt, der Loerdy

  2. #2
    Senior Mitglied
    Registriert seit
    23.08.1999
    Beiträge
    132
    Zu Schritt 2:

    mach einfach einen "ls -l" auf die Datei und filtere z. B. die Groesse der datei raus
    Code:
    SIZE_NEW=$(ls -l /the/new/file/pattern.txt | awk '{print $5}' )
    SIZE_OLD=$(ls -l /the/old/file/pattern.txt | awk '{print $5}' )
    Zu Schritt 3:
    Code:
    if [ $SIZE_NEW -ne $SIZE_OLD ]
    then mail -s "Virensignaturen sind nicht aktuell" faxmail09@gmx.net<<ENDE_MAIL
    leerer Inhalt
    ENDE_MAIL
    umount /irgendwas
    else
    ./beende_mailscan
    ...
    ...
    fi
    Informationen zum Shellscripten findest du bei www.linuxfibel.de/bashprog.htm

    Gruß
    Tobias
    Geändert von mightymike99 (27-02-2002 um 23:25 Uhr)

  3. #3
    loerdy
    Gast
    Danke, das werde ich mal versuchen...

    gibt es auch die Möglichkeit über den Dateinamen und nicht nach der Grösse zu gehen?
    Die Pattern werden immer aufsteigend benannt:

    lpt$vpn.229
    lpt$vpn.230
    lpt$vpn.231
    lpt$vpn.232

    usw...

    Nun wäre es doch irgenwie sinnvoll zu fragen, wenn wert nach dem Punkt grösser als , dann bitte tauschen oder so??

    Vielen Dank, Loerdy

  4. #4
    Senior Mitglied
    Registriert seit
    23.08.1999
    Beiträge
    132
    Ja sicher geht das. Nimm einfach den Dateinamen und schneide die Zahl aus.

    Code:
    NEW_NR=$(basename(ls /die/neue/lpt\$vpn*) | cut -c9-11 )
    Das $-Zeichen ist ein Sonderzeichen und muss deshalt mit dem \ - Zeichen "geschuetzt" werden.

    "basename" trennt denn Pfadnamen vom Dateinamen ab.

    Gruß
    Tobias

Lesezeichen

Berechtigungen

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