var/log/syslog постоянно растет в размерах
Диск с Ubuntu на моем компьютере 115GB по размеру.
Когда диск был 114.7GBполный.
Я начал удалять некоторые файлы здесь и там, чтобы освободить вокруг 5GB,
Но я заметил, что диск был 114GB заполнен снова. Я подумал, что это что-то вроде кеша или подкачки, поэтому не задумывался об этом и пошел дальше и освободился 40GBсдвигая некоторые медиа-файлы с диска.
Через час у меня уведомление о том, что диск снова заполнен!!40GB!!! Все ушли!
Так что я отладил проблему до /var/log/syslog файл, который был изначально определенно меньше, чем 20GB, Я знаю это, потому что /var папка была 17GB прежде чем я очистил память.
/var/log/syslog файл в настоящее время 55.9GB!
Может ли кто-то быть настолько любезным, чтобы объяснить эту аномалию? Это ошибка? Или я заразился какой-то вредоносной программой или вирусом?
6 ответов
Этот неопределенный рост обычно происходит из-за повторного журнала одной или нескольких ошибок из одного и того же источника. В моем случае это было связано с постоянным сообщением об ошибке подключения из интерфейса мониторинга Wi-Fi mon0 Я использовал для мониторинга моего трафика Wi-Fi. Были сообщения об ошибках такого переполнения, происходящего в различных других интерфейсах, таких как tun0 из VPN и т. д.
Я решил свою проблему, очистив /var/log/syslog файл
Чтобы справиться с этой ошибкой
- Вам необходимо найти источник этой ошибки и не допустить дальнейшего переполнения журнала.
- Затем очистите
var/log/syslogфайл
Проблемы, с которыми вы можете столкнуться, делая то же самое
- Не могу открыть
var/log/syslog: из-за огромных размеров любой редактор может потерпеть крах - Не могу очистить
/var/log/syslog: Опять же, из-за большого размера очистки тоже проблема
Итак, для просмотра ошибки, вызвавшей переполнение
tail -f /var/log/syslog
Для очистки используйте:
sudo cat /dev/null > /var/log/syslog
У меня были подобные проблемы, мой файл системного журнала имел 115 ГБ и syslog.1 еще 115 ГБ, плюс несколько сжатых файлов.
1-й шаг найти источник:
watch tail /var/log/syslog
вы, вероятно, заметите общие записи об ошибках; после того; предполагая, что ваши файлы слишком большие; ПОЧТИ бессмысленно вращаться. Таким образом, вы можете удалить все сжатые файлы и файлы *.1 для восстановления дискового пространства (мой случай около 300 ГБ)
2-й шаг УДАЛИТЬ ФАЙЛ, НЕ УДАЛЯТЬ (или у вас может быть много проблем с разрешениями в будущем), есть много способов, включая:
sudo tee /var/log/syslog </dev/null
Вы даже можете сделать второй шаг раньше и продолжать наблюдать, чтобы найти причину, но будьте уверены, если это не произойдет, это повторится снова. Вероятно, это что-то в цикле, системные службы - хорошее место, чтобы начать искать (то, что перезапускается очень быстро и всегда для примера)
Проверить /var/lib/logrotate/status и убедитесь, что он вращается правильно. Вам также необходимо просмотреть содержимое файла и посмотреть, является ли это системной проблемой, постоянно генерирующей сигналы тревоги.
Попробуй это. Он должен работать правильно и очистить его:
sudo sh -c 'cat /dev/null > /var/log/syslog'
Поздний ответ на исходный пост, но это помогло мне. При запуске программы как службы кажется, что все printfs перенаправляются в syslog, а не в stdout, если у вас много printfs, то это очень быстро заполнит syslog. У меня были некоторые проблемы с некоторыми из предложенных здесь методов, но
sudo tee /var/log/syslog </dev/null
работал каждый раз.
Обратите внимание, что (для меня) я, когда файл системного журнала заполнился достаточно, это предотвратило запуск рабочего стола pi - я работал над этим, войдя в систему через Putty и сначала используя команду tee, а затем перезагрузившись.
Шаг 1: Создайте пример файла сценария clearlog.sh в папке /var/log/ с правами доступа к файлу «chmod 775 clearlog.sh».
файл clearlog.sh со следующими строками:
#!/bin/sh
LINECOUNTS=(`cat /var/log/syslog | wc -l`)
if [ $LINECOUNTS -gt "1000" ];
then
echo "Recreating syslog file due to lines "$LINECOUNTS" are more than 1000 lines"
truncate -s 0 /var/log/syslog
sleep 5
else
echo "syslog file having line count "$LINECOUNTS" less than 1000}"
fi
/bin/systemctl restart syslog
exit
Шаг 2: Отредактируйте файл в папке /etc/logrotate.d/logs, добавив раздел postrotate.
/var/log/syslog {
daily
rotate 3
missingok
copy
notifempty
compress
dateext
dateformat -%Y%m%d%H%M
postrotate
/var/log/clearlog.sh
endscript
}
Чтобы протестировать приведенный выше скрипт из командного терминала, выполните этот cli 'logrotate -f /etc/logrotate/logs'