Существуют инструменты, позволяющие делать то же самое в как FreeBSD и Linux, так и в других операционных системах.
Следующие инструменты поддерживают строго ограниченный размер -, автоматически поворачиваются, вращаются -по требованию -, наборы файлов журнала в указанном каталоге.
multilog
из daemontools , или Брюса Гюнтераmultilog
из daemontools -encore , или Адама Сэмпсона multilog
из freedts6-log
из s6svlogd
из рунитtinylog
от преступникаcyclog
из ношаИспользование очень простое :Отправьте на -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
и простой записи этого потока журнала в свою стандартную ошибку. Вы можете использовать следующую команду для достижения результата
rsync -azvP Media_Files/Assets/Web Media_Files/
Вам нужно будет сделать это в два этапа:
Media_Files/Assets
(, при условии, что подMedia_Files
)есть другие вещи. 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
.
Вместо этого вы можете выполнить следующие два шага:
destination
точную копию Media_Files
, включая Media_Files/Assets
. destination/Assets
, которое вы хотите переместить в destination
, и удалите destination/Assets
. Короче:
rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets
Последние две команды будут изменены, чтобы перемещать только содержимое destination/Assets
, которое вы хотите сохранить (, например. destination/Assets/Web
), и чтобы удалить остальные (здесь, я предполагаю, что вы захотите переместить все видимые файлы и каталоги, и что это оставит подкаталог Assets
полностью пустым ).