Rsync включает содержимое папки, но исключает родительскую папку

Существуют инструменты, позволяющие делать то же самое в как FreeBSD и Linux, так и в других операционных системах.

Изготовление автоматически -повернутые строго по размеру -бревна с заглушками

Следующие инструменты поддерживают строго ограниченный размер -, автоматически поворачиваются, вращаются -по требованию -, наборы файлов журнала в указанном каталоге.

Использование очень простое :Отправьте на -be -стандартный вывод зарегистрированного процесса и стандартную ошибку через канал на их стандартный ввод обычным способом:

./thing-to-be-logged 2>&1 | cyclog logs/

cyclogстандартно добавляет временные метки TAI64N к строкам. Для свободной обработки временной метки -, когда что-то уже имеет временную метку, используйте один из multilog, s6-logили svlogd, в каждом из которых добавление временной метки является опцией по умолчанию, отличной от -.

Замена системного журнала

То, на что вы указываете, модифицирует саму FreeBSD syslogс патчем, выпущенным в 2001 году, который в настоящее время может не применяться в чистом виде, чтобы иметь другой механизм выходного файла.

Альтернативный подход состоит в том, чтобы просто полностью заменить демон syslog, а также настроить больше служб для простого ведения журнала стандартных ошибок (в рамках управления службами, которое передает стандартные ошибки службам ведения журналов )вместо использования syslog в первую очередь.

Например, :Набор инструментов nosh предоставляет несколько таких заменителей, которые разделяют работу системного журнала и генерируют выходные данные, подходящие для подачи через стандартный ввод одного из вышеупомянутых инструментов ведения журнала:

  • служба klogd, которая запускает простую программу с именемklog-readдля чтения из /proc/kmsgи простой записи этого потока журнала в свою стандартную ошибку.
  • служба local-syslog-read, которая запускает программу с именемsyslog-readдля чтения дейтаграмм из/dev/log(/run/logна BSD )и просто записывает этот поток журнала в свою стандартную ошибку.
  • служба udp-syslog-read, которая запускает вышеупомянутую программуsyslog-readдля прослушивания порта системного журнала UDP и просто записывает этот поток журнала в свою стандартную ошибку.
  • служба local-priv-syslog-read, которая запускает вышеупомянутую программуsyslog-readдля чтения дейтаграмм из /run/logprivи простой записи этого потока журнала в свою стандартную ошибку.

Дополнительная литература

0
27.11.2019, 11:31
2 ответа

Вы можете использовать следующую команду для достижения результата

rsync -azvP Media_Files/Assets/Web Media_Files/

0
28.01.2020, 03:05

Вам нужно будет сделать это в два этапа:

  1. Скопируйте все, кроме Media_Files/Assets(, при условии, что подMedia_Files)есть другие вещи.
  2. Копировать Media_Files/Assets/Web.

Первый шаг можно выполнить с помощью

rsync -av --exclude=/Assets/ Media_Files/ destination

Это будет (подробно )копировать каталог Madia_Filesрекурсивно (, включая разрешения и другие метаданные -)в destination, делая destinationкопиюMedia_Files(удалить завершающий /в исходном пути, чтобы вместо этого создатьdestination/Media_Files).

Каталог Assetsнепосредственно под Media_Filesбудет игнорироваться из-за шаблона исключения /Assets/.

Второй шаг можно выполнить с помощью

rysync -av Media_Files/Assets/Web destination

Отсутствие /в конце исходного пути означает, что Webбудет помещен внутрь destination.

Если у вас есть другие файлы или каталоги в Media_Files/Assets, кроме Web, которые вам также необходимо скопировать, используйте вместо них

rsync -av Media_Files/Assets/ destination

Это скопирует все из Media_Files/Assets(, включая каталог Webи его содержимое )непосредственно в destination.


Вместо этого вы можете выполнить следующие два шага:

  1. Сделать destinationточную копию Media_Files, включая Media_Files/Assets.
  2. Вручную переместите содержимое destination/Assets, которое вы хотите переместить в destination, и удалите destination/Assets.

Короче:

rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets

Последние две команды будут изменены, чтобы перемещать только содержимое destination/Assets, которое вы хотите сохранить (, например. destination/Assets/Web), и чтобы удалить остальные (здесь, я предполагаю, что вы захотите переместить все видимые файлы и каталоги, и что это оставит подкаталог Assetsполностью пустым ).

0
28.01.2020, 03:05

Теги

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