Мне нужно стереть все системные журналы и т. Д. С работающей машины Debian, на которой в основном работает Apache.
Безопасно ли удалить все файлы в /var/log
без воссоздания (касанием?) любого из них? Т.е. будут ли все стандартные процессы автоматически воссоздавать свои файлы журнала, в том числе с правильным владельцем и разрешениями по умолчанию, если они внезапно обнаружат, что файл журнала исчез?
нет, не совсем. Некоторые файлы журналов не будут воссозданы процессами, записывающими в них. Лучше очистить файлы журнала, например cat / dev / null> / var / log /
Некоторые демоны не будут счастливы, пока вы kill -HUP
их, чтобы они знали, что их файл журнала изменился (особенно когда это mv
). Вы должны знать, каково их поведение, прежде чем делать это.
Вам следует подумать об использовании mv
, kill -HUP
затем shred
перемещаемый файл (вместо cp
или echo
).
Кроме того, вы можете прочитать man 8 logrotate
для дополнительной информации.
репутация слишком низкая для комментирования, поэтому я поставил ее в ответ:
Чтобы очистить каждый файл в / var / log /, включая подкаталоги, вы можете выполнить
find /var/log/ -type f -exec cp /dev/null {} \;
(естественно это не проверено)
Я предполагаю, что да, их можно очистить. Однако никто не сможет сказать наверняка, не изучив список файлов журнала или приложений, которые их создали. Политика Debian предполагает, что это должно быть безопасно, но, вероятно, никто не пробовал.
На вашем месте я бы сохранил копию каталога и потом проверял работу системы. И не забудьте удалить бэкап :)
Обычно лучше обнулить их, как таковые:
cp /dev/null /var/log/logname
Таким образом, если какой-либо запущенный процесс имеет дескрипторы открытых файлов для имени журнала, он сможет продолжать запись в файл, блаженно игнорируя, что что-то вообще произошло.