Мой сервер — CEntOS 7, и на нем есть sendmail, но нет mailx и т. д. Вместо того, чтобы устанавливать новую программу, я протестировал ее непосредственно с помощью sendmail и обнаружил, что это работает:
echo -e "From: you@whatever\nTo: you@gmail.com\nSubject: this is the subject\n\nThis is the body,\nwith multiple lines." | sendmail -t
Для меня это самый простой способ отправить короткое электронное письмо, так как он не требует запуска или настройки сервера или демона и может быть выполнен в одной командной строке.
Идея состоит в том, что сообщение просто предупредит меня о том, что определенная программа выдала ошибку, не раскрывая никакой потенциально конфиденциальной информации, а затем я отправлюсь на сервер по SSH, чтобы проверить его журналы. Таким образом, вам не нужно беспокоиться о таких сложностях, как прикрепление файлов или шифрование транспорта.
Примечания:
-e
приказывает эху интерпретировать '\n' и другие escape-символы. -t
указывает sendmail получать адреса получателей из «Кому :» в заголовке сообщения. tail /var/log/maillog
для просмотра сообщений об ошибках. Вам нужно указать rsync удалить недостающие аргументы:
rsync -arv --delete-missing-args --delete --info=progress2 --files-from=filelist.txt. /path/to/dest
foo
, он также будет удален в /path/to/dest
с помощью --delete-missing-args
. foo
еще нужно указать в filelist.txt
. --delete
необходим, чтобы разрешить rsync удалять файлы в папке foo
Нет. rsync
не будет удалять файлы/каталоги только потому, что список файлов не содержит этих файлов или он пуст.
если вы используете --files-from
, он попытается синхронизировать только файлы, перечисленные от источника до места назначения.
Он не будет удалять файлы только потому, что они отсутствуют в списке файлов, переданном в --files-from
.
Чтобы --удаление работало, вам нужно использовать фактический исходный путь.. вот так
rsync -ar --delete path/to/src path/to/destination