Verschicken von Dateien
Daniel
- perl
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
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!
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
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