Ведение журнала на системную консоль — это особый случай направления вывода журнала на любой реальный терминал или виртуальное терминальное устройство ядра. Там нет когда-либо -растущего буфера ядра. То, что прокручивается в верхней части экрана терминала, теряется.
Однако это плохая идея для регистрации WWW-сервера.
Извлеките урок из " Bash отображает тарабарщину после определенного входящего запроса " и не предоставляет злоумышленникам средства для записи произвольных данных на ваши терминалы, особенно на вашу системную консоль .
И не думайте, что безопасность в локальной сети не нужна. Всегда защищенные серверы, принимающие данные по любой сети.
Стандартная ошибка и стандартный вывод вашего процесса должны быть подключены к каналу, другой конец которого является одним из инструментов, упомянутых вhttps://unix.stackexchange.com/a/505854/5132:
./thing-to-be-logged 2>&1 | cyclog logs/
Эти инструменты гарантируют, что файлы в logs/
занимают не более указанного объема дискового пространства, и выполняют ротацию журналов автоматически и в нужных точках. Просмотр журналов даже с помощью чего-то такого простого, как less
, гарантирует, что предоставленные злоумышленником -данные очищены (до уровня ), а не просто переданы на терминальное устройство, как -. (Конечно, не используйте опцию -R
для less
.)
Подстановочные знаки в именах файлов не имеют значения для оболочки. Расширение имени файла и разбиение на слова не происходит в обычном назначении (не -массива ), независимо от того, есть ли там кавычки или нет.
Хотя во многих других контекстах вам понадобятся кавычки, и они также понадобятся вам в присваивании, если значение содержит пробелы или операторы оболочки (, например. ;
, (
, >
и т. д. ). Так что некоторые могут захотеть использовать их и здесь, просто чтобы везде использовать один и тот же обычай.
См. также:Когда необходимо двойное -цитирование?