Logrotate Успешный, исходный файл возвращается к первоначальному размеру

Для приложения ASP.NET, если Вы устанавливаете олицетворение = "верный" затем, что оно выполнит при аутентифицируемом пользователе для 'большинства' вещи. Так, если у Вас будет он запрашивающий имя пользователя/пароль на веб-приложении, то те учетные данные передадут до веб-сервиса, если олицетворение будет включено.

Однако Вы собираетесь столкнуться с тем, что называют 'двойной проблемой транзитного участка'. Автор Windows целеустремленно не позволяет учетным данным проходить через 2 транзитных участка как этот. Вот сообщение в блоге, которое покрывает возможные решения: http://weblogs.asp.net/owscott/archive/2008/08/22/iis-windows-authentication-and-the-double-hop-issue.aspx

11
задан 12 January 2011 в 01:43
4 ответа

Это, вероятно, потому что даже при том, что Вы усекаете файл, процесс, пишущий в файл, продолжит писать в том, какой бы ни смещенный это было наконец. Таким образом, то, что происходит, - то, что logrotate усекает файл, размер является нулем, процесс пишет в файл снова, продолжаясь при смещении, которое он бросил, и у Вас теперь есть файл с ПУСТЫМИ байтами до такой степени, когда Вы усеченный это плюс новые записи, записанные в журнал.

отравитесь большой дозой наркотика-c после усеченный + внезапный рост, сгенерированный вывод вроде:

0000000  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
*
33255657600  \0   C   K   B   -   s   e   r   v   e   r       [   h   t   t
33255657620 <more log output>

То, что это говорит, от смещения от 0 до 33255657600 Ваших файлов, состоит из пустых байтов и затем некоторых четких данных. Получение к этому состоянию не занимает то же количество времени, которое оно взяло бы для фактической записи всех тех пустых байтов. Расширение {2,3,4} файловые системы поддерживают что-то названное редкими файлами, поэтому если Вы будете искать мимо региона файла, который ничего не содержит, то тот регион, как будет предполагаться, будет содержать пустые байты и не займет место на диске. Те пустые байты не будут на самом деле записаны, просто, как предположат, будут там, следовательно время, которое требуется для движения в 0 - 3.5 ГБ, не занимает много времени к. (Можно протестировать количество времени, которое это занимает путем выполнения чего-то как dd if=${HOME}/.bashrc of=largefile.bin seek=3432343264 bs=1, это должно генерировать файл более чем 3 ГБ в нескольких миллисекундах).

Если Вы работаете ls -ls на Ваших файлах журнала после того, как они были усеченными и имели внезапный рост снова, он должен теперь сообщить о числе в начале строки, которая представляет фактический размер (в блоках, занятых на диске), который, вероятно, является порядками величины, меньшими, чем размер, о котором сообщают просто ls -l.

18
ответ дан 2 December 2019 в 21:47

Я чрезвычайно уверен, что Kjetil поразил его. Потянул, Вы еще не можете быть убеждены его объяснением, но я убеждаю Вас считать тщательно, что он сказан.

При принятии его фиксация должна или остановить и перезапустить приложение, когда журналы повернуты или используют инструмент как "rotatelogs" апача, где Вы подаете вывод журнала к инструменту через канал, и инструмент заботится о вращении файла журнала время от времени. Например, один из моих апачских экземпляров регистрируется с

ErrorLog "|/usr/sbin/rotatelogs /www/logs/error_log 604800"

который вызывает много файлов журнала с именами как

-rw-r--r--    1 root     root         4078 Dec 21 01:04 error_log.1292457600
-rw-r--r--    1 root     root         4472 Dec 29 08:41 error_log.1293062400
-rw-r--r--    1 root     root        78630 Jan  4 12:57 error_log.1293667200
-rw-r--r--    1 root     root        15753 Jan 12 01:10 error_log.1294272000

появиться, не перезапуская апача; я могу затем сжать их вручную после факта. Отметьте, как вращение делается каждую неделю, который является каждые 604800 секунд, при этом тот аргумент, переданный rotatelogs.

Если Вы не можете остановить и перезапустить приложение, и оно не может зарегистрироваться через канал, то я думаю, что у Вас есть настоящая проблема. Возможно, у других будут предложения.

2
ответ дан 2 December 2019 в 21:47

было бы действительно замечательно, если Вы могли бы отправить целый logrotate.

Почему попытка использовать уничтожает - ПОНУКАЮТ? (Классическая перезагрузка, не перезапускающая) метод.

Также... сверьтесь lsof кто получает доступ к файлу.

0
ответ дан 2 December 2019 в 21:47

Просто используйте ">>", что означает добавление, а не ">", что означает создание из ваших сценариев, которые записывают в этот файл. У меня была точно такая же проблема, и я исправил ее с помощью добавления в моем скрипте.

SomeScript.sh >> output.txt

Надеюсь, что это понятнее.

-1
ответ дан 2 December 2019 в 21:47

Теги

Похожие вопросы