Nun, was ist der Unterschied zwischen beiden Protokollen? Sie zeigen nur einen von ihnen.
Ich glaube, dass das Zeichen ":" in diesem Protokoll als Steuerzeichen auf der SMTP-Serverseite angesehen wird. Sie müssen vor dem Mailtext '\ n' hinzufügen
Ich führe ein einfaches rsync-Skript aus, in dem stdout und stderr in zwei verschiedenen Dateien, rsync_stdout.log und rsync_stderr.log, protokolliert werden.
Wenn ich versuche, den Inhalt von rsync_stderr.log per E-Mail zu senden, verwenden Sie Folgendes:
echo $(cat rsync_stderr.log) | ssmtp myaddress@gmail.com
Ich erhalte eine leere E-Mail-Nachricht, aber wenn ich:
echo $(cat rsync_stdout.log) | ssmtp myaddress@gmail.com
dann habe ich mein stdout ohne problem in den körper der email eingetragen.
Hat es etwas mit rsyncs stderr-Ausgabedatei zu tun? Ich habe alles versucht, aber ich kann es einfach nicht verstehen.
Ich lief ssmtp als verbose:
[<-] 250 2.1.5 OK b48smxxx70wrb.1 - gsmtp [->] DATA [<-] 354 Go ahead b48smxxxxxx70wrb.1 - gsmtp [->] Received: by XXXNAS (sSMTP sendmail emulation); Tue, 19 Dec 2017 01:14:47 +0100 [->] From:"XXXNAS" <XXXNAS>> [->] Date: Tue, 19 Dec 2017 01:14:47 +0100 [->] rsync: delete_file: unlink(.AppleDB/log.0000000001) failed: Permission denied (13) [->] rsync: delete_file: unlink(.AppleDB/lock) failed: Permission denied (13) [->] rsync: delete_file: unlink(.AppleDB/db_errlog) failed: Permission denied (13) [->] rsync: delete_file: unlink(.AppleDB/cnid2.db) failed: Permission denied (13) [->] rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [->] [sender=3.1.2] [->] [->] . [<-] 250 2.0.0 OK 1513642487 b48sxxxxxxrb.1 - gsmtp [->] QUIT [<-] 221 2.0.0 closing connection b4xxxxxwrb.1 - gsmtp
Ich kann also den gesendeten Text sehen, aber der Text der E-Mail ist leer.
Ich habe auch versucht ssmtp myaddress@gmail.com <rsync_stderr.log, aber es funktioniert auch nicht.
Nun, was ist der Unterschied zwischen beiden Protokollen? Sie zeigen nur einen von ihnen.
Ich glaube, dass das Zeichen ":" in diesem Protokoll als Steuerzeichen auf der SMTP-Serverseite angesehen wird. Sie müssen vor dem Mailtext '\ n' hinzufügen
Nachdem der Benutzer almendrico mich auf den Weg gebracht hatte, benutzte ich:
sed 's/[\:]//g'
um den :
Charakter zu entfernen .
Nicht sehr elegant, aber funktioniert.