Как обнулить log файлы?

seosniks
На сайте с 13.08.2007
Offline
389
819

Добрый день.

Подскажите пожалуйста как в папке обнулить логи?

по одному файлу очищаю каждый файл так

cat /dev/null > 1.log

cat /dev/null > 2.log

cat /dev/null > 1.error.log

cat /dev/null > 2.error.log

Можно ли очистить за один раз все в папке?

Спасибо.

Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#1

#!/bin/sh

for f in /log/*
do
if [ -f $f ] # на случай если в папке не только файлы окажутся. если нет, то можно убрать
then
> $f
fi
done


---------- Добавлено 23.09.2018 в 13:57 ----------

а хотя можно и одной строчкой сделать, не обязательно скриптом.

в вашем случае:

если логи не только на .log заканчиваются, то можно вообще все обнулить:

find /var/www/httpd-logs/* -exec /bin/sh -c "> '{}'" ';'

если все же только .log:

find /var/www/httpd-logs/*.log -exec /bin/sh -c "> '{}'" ';'

если помимо файлов еще и папки там могут быть, то указываем искать только файлы:

find /var/www/httpd-logs/*.log -type f -exec /bin/sh -c "> '{}'" ';'

если надо и по подпапкам пройтись:

find /var/www/httpd-logs/ -type f -name "*.log" -exec /bin/sh -c "> '{}'" ';'

Skom
На сайте с 02.12.2006
Offline
166
#2

А штатный logrotate по каким-то политическим причинам не устраивает?

Cras amet qui numquam amavit quique amavit cras amet

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий