Системный вызов rmdir завершается с ошибкой EINVAL, если последний компонент пути аргумента "."."
. Это документировано на http://pubs.opengroup.org/onlinepubs/009695399/functions/rmdir.html
, и обоснование такого поведения таково:
Смысл удаления имени пути /dot неясен, поскольку имя файла (каталога) в родительском каталоге, который должен быть удален, не является ясно, особенно при наличии нескольких ссылок на каталог.
Именно так, скорее всего нет. Как только он разогреется и заполнит файл, он будет переписывать 1MiB-N байт старых данных, чтобы перетасовать их по файлу, на каждый N байт новых данных, которые он добавляет в конец буфера. Это не совсем идеальный механизм, к тому же чтение файла по мере его записи чревато проблемами "разрыва".
Близко к этому существует множество команд. Увеличьте количество файлов до двух, текущий файл и его непосредственный предшественник, чтобы в любой момент времени иметь от 1 до 2 Мбайт самого последнего вывода, причем вывод не копируется после записи; и вы получите то, что целая куча программ протоколирования семейства daemontools делает по своему замыслу. По сути, они представляют собой именно этот тип "tee
plus".
multilog
Дэна Бернштейна из daemontools и multilog
Брюса Гюнтера из daemontools-encore: someprogram | multilog n2 s1048576 ./logdir/
s6-log Лорана Берко
из s6: someprogram | s6-log n2 s1048576 ./logdir/
svlogd
из runit с конфигурационным файлом, который говорит n2 s1048576
: someprogram | svlogd ./logdir/
tinylog
from perp: someprogram | tinylog -k 1 -s 1048576 ./logdir/
cyclog
from nosh: someprogram | cyclog --max-file-size 1048576 --max-total-size 1048576 ./logdir/
logrotate
или newsyslog
в этом веке. . Часто задаваемые вопросы. В пакете apache2-utils
присутствует утилита под названием rotatelogs
, она полностью соответствует вашим требованиям.
Краткий обзор:
rotatelogs [ -l ] [ -L имя ссылки ] [ -p программа ] [ -f ] [ -t ] [ -v ] [ -e ] [ -c ] [ -n количество файлов] файл журнала время вращения|размер файла(B|K|M|G) [ смещение ]
Полный мануал вы можете прочитать по этой ссылке.