ssmtp myaddress@gmail.com <file.log не работает. Тело пустое

373
brunobhr

Я запускаю простой скрипт rsync, где я записываю stdout и stderr в два разных файла, rsync_stdout.log и rsync_stderr.log.

Когда я пытаюсь отправить по электронной почте содержимое rsync_stderr.log, используя:

echo $(cat rsync_stderr.log) | ssmtp myaddress@gmail.com 

Я получаю пустое тело письма, но когда я делаю:

echo $(cat rsync_stdout.log) | ssmtp myaddress@gmail.com 

тогда у меня есть журнал stdout в теле письма без проблем.

Это как-то связано с выходным файлом rsync stderr? Я попробовал все, но я просто не могу получить это.

Я запустил ssmtp как многословный:

[<-] 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 

Таким образом, я могу видеть отправляемый текст, но тело письма становится пустым.

Я также попробовал ssmtp myaddress@gmail.com <rsync_stderr.log, но он тоже не работает.

1
Вы проверили, если это потому, что stderr.log пуст? Thu Yein Tun 6 лет назад 0
Да, это не так. Если я просто сделаю: echo $ (cat rsync_stderr.log), файл журнала будет отображаться очень хорошо. brunobhr 6 лет назад 0

2 ответа на вопрос

1
Almendrico

Ну и какая разница между обоими бревнами? Вы просто показываете один из них.

Я считаю, что символ ':', присутствующий в этом журнале, рассматривается как контрольный символ на стороне сервера SMTP. Вам нужно добавить '\ n' перед телом письма

`rsync: delete_file: unlink (.AppleDB / log.0000000001) не удалось: разрешение отклонено (13) rsync: delete_file: unlink (.AppleDB / lock) не удалось: разрешение отклонено (13) rsync: delete_file: unlink (.AppleDB / db_errlog) Сбой: Отказано в доступе (13) rsync: delete_file: unlink (.AppleDB / cnid2.db) Сбой: Отказано в разрешении (13) Ошибка rsync: некоторые файлы / атрибуты не были переданы (см. предыдущие ошибки) (код $ sender = 3.1.2 ` brunobhr 5 лет назад 0
Спасибо за ваш ответ и извините за поздний ответ .. Я потерял надежду в поиске решения .. Я только что опубликовал err.log. Я пытался добавить \ n в начале, но это не сработало. Электронная почта все еще пуста. brunobhr 5 лет назад 0
Спасибо Альмендрико за то, что он указал мне путь. Я удалил символ `:` с помощью sed, и я могу получить файл err.log. brunobhr 5 лет назад 0
0
brunobhr

После того, как пользователь almendrico указал мне путь, я использовал:

sed 's/[\:]//g'удалить :персонажа.

Не очень элегантно, но работает.

Похожие вопросы