rsync --удаление не работает

Мой сервер — 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для просмотра сообщений об ошибках.
  • Если вы отправляете письма на свой адрес Gmail, установите фильтр в Gmail, чтобы они не попадали в папку нежелательной почты.
  • Этот sendmail на самом деле 'sendmail.postfix' (, что может быть нормальным ); здесь есть справочная страница

3
01.10.2020, 01:44
2 ответа

Вам нужно указать 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
3
18.03.2021, 23:04

Нет. rsyncне будет удалять файлы/каталоги только потому, что список файлов не содержит этих файлов или он пуст.

если вы используете --files-from, он попытается синхронизировать только файлы, перечисленные от источника до места назначения.

Он не будет удалять файлы только потому, что они отсутствуют в списке файлов, переданном в --files-from.

Чтобы --удаление работало, вам нужно использовать фактический исходный путь.. вот так

rsync -ar --delete path/to/src path/to/destination 
0
18.03.2021, 23:04

Теги

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