Daniel: Verschicken von Dateien

Hallo allerseits!

mit PERL schreibe ich Daten in einer Protokolldatei. Ab und zu möchte ich diese Datei einsehen. Bis jetzt mache ich es so, daß ich diese Datei per FTP abhole.
Meine Frage: ist es möglich mit einem Perl-Script und sendmail diese Protkolldatei regelmäßig (z.B. einmal pro Woche) zu verschicken?

MfG
Daniel

  1. hi!

    mit PERL schreibe ich Daten in einer Protokolldatei. Ab und zu möchte ich diese Datei
    einsehen. Bis jetzt mache ich es so, daß ich diese Datei per FTP abhole.
    Meine Frage: ist es möglich mit einem Perl-Script und sendmail diese Protkolldatei
    regelmäßig (z.B. einmal pro Woche) zu verschicken?

    Da es sich ja wohl um eine reine Textdatei handelt, kannst du die Datei öffnen und den Text ganz einfach als eMail versenden, statt die Datei als Attachment zu verschicken.

    Ansonsten musst du die eMail meines Wissens komplett selbst zusammensetzen. Um eine Datei als MIME-Anlage zu versenden, musst du sie erst codieren und dann mit MIME-Header in die Nachricht einsetzen.

    bye, Frank!

    1. Hi,

      mit PERL schreibe ich Daten in einer Protokolldatei. Ab und zu möchte ich diese Datei
      einsehen. Bis jetzt mache ich es so, daß ich diese Datei per FTP abhole.
      Meine Frage: ist es möglich mit einem Perl-Script und sendmail diese Protkolldatei
      regelmäßig (z.B. einmal pro Woche) zu verschicken?

      Da es sich ja wohl um eine reine Textdatei handelt, kannst du die Datei öffnen und den Text ganz einfach als eMail versenden, statt die Datei als Attachment zu verschicken.

      Ansonsten musst du die eMail meines Wissens komplett selbst zusammensetzen. Um eine Datei als MIME-Anlage zu versenden, musst du sie erst codieren und dann mit MIME-Header in die Nachricht einsetzen.

      Ergänzung zur Regelmäßigkeit: Das "1x pro Woche" bekommst Du mit einem sog. cronjob. Mehr Infos auf einem Unix-System mit "man cron" und "man crontab". Unter NT gibt es wohl ein ähnliches Programm namens "at", bei dem ich Dir allerdings nicht weiterhelfen kann.

      Alternative: Schreibe ein kurzes Script, das die Datei an STDOUT ausgibt. Als Header benutzt Du "Content-type: application/octet-stream\n\n"; dann solltest Du sie zum Speichern angeboten bekommen. Das Script sollte nicht viel mehr als 5 oder 6 Zeilen haben und ist schneller als Mail oder FTP :-) Natürlich mußt Du die Datei dann selbst beantragen, also mit regelmäßig ist erst mal nichts.

      Ach ja: Falls Du die Datei nach dem Verschicken löschen möchtest, das geht mit unlink().

      Cheatah

      1. Hallo,

        kleine Ergänzung zu "at" (aus der NT-Hilfe)

        Ergänzung zur Regelmäßigkeit: Das "1x pro Woche" bekommst Du mit einem sog. cronjob. Mehr Infos auf einem Unix-System mit "man cron" und "man crontab". Unter NT gibt es wohl ein ähnliches Programm namens "at", bei dem ich Dir allerdings nicht weiterhelfen kann.

        Mit dem Befehl AT können Befehle und Programme zu einem vorbestimmten      
        Termin gestartet werden. Der Zeitplandienst muß gestartet sein, um den      
        Befehl AT zu verwenden.

        Der Zeitplandienst kann wie folgt gestartet werden:
        A.Start Einstellungen Systemsteuerung   Dienste : Schedule markieren und starten (Die Startart kann auch auf automatisch gestellt werden).
        B.Auf der Kommandozeile eingeben: "net start schedule"

        AT [\Computer-Name] [ [ID] [/DELETE] /DELETE [/YES]]          
        AT [\Computer-Name] Zeit [/INTERACTIVE]
            [ /EVERY:Datum[,...] /NEXT:Datum[,...]] "Befehl"

        \Computer-Name     Gibt einen Remote-Computer an. Ohne diesen Parameter werden
                           die Befehle auf dem lokalen Computer ausgeführt.        
        ID                 Eine Identifikationsnummer, die dem geplanten Befehl    
                           zugeteilt wird.                                          
        /DELETE            Löscht geplante Befehle. Ohne ID werden alle geplanten
                           Befehle auf dem Computer gelöscht.
        /YES               In Verbindung mit /DELETE werden die geplanten
                           Befehle ohne weitere Bestätigung gelöscht.
        Zeit               Gibt die Zeit an, zu der ein Befehl ausgeführt werden soll.
        /INTERACTIVE       Ermöglicht dem Auftrag Eingaben vom Benutzer anzunehmen,  
                           der angemeldet ist, wenn der Auftrag ausgeführt wird.
        /EVERY:Datum[,...] Führt den Befehl zu jedem der angegebenen Tage der Woche
                           oder des Monats aus. Ohne Angabe eines Datums wird der
                           aktuelle Tag des Monats angenommen.            
        /NEXT:Datum[,...]  Führt den Befehl am nächsten angegebenen Tag aus (z.B.
                           nächsten Montag). Ohne Angabe eines Datums wird der aktuelle
                           Tag des Monats angenommen.                              
        "Befehl"           Ist der auszuführende Windows NT-Befehl oder Stapelprogramm.

        Viele Grüße, Rolf