Właśnie odkryłem, że IIS buduje logi w nieskończoność i wydaje się, że nie ma żadnych ustawień IIS, które automatycznie wyczyściłyby stare pliki dziennika. Jaki jest najlepszy sposób na kontrolowanie moich dzienników IIS, aby nie zapełniały całego dysku twardego?
20
Odpowiedzi:
Aby to zrobić, musisz uruchomić zaplanowane zadanie. Oto skrypt Powershell, który powinien działać.
Powinno to wyczyścić wszystko, co zostało ostatnio zmodyfikowane ponad 30 dni temu. Zmień ścieżkę w pierwszym wierszu na miejsce, w którym przechowywane są pliki dziennika. Zmień także wartość -30 na dowolną długość plików. -30 oznacza, że usuniesz wszystko starsze niż 30 dni.
Możesz zajrzeć do tego artykułu, który pokazuje różne właściwości obiektu FileInfo, jeśli nie chcesz używać LastWriteTime.
źródło
Get-ChildItem *.* -include *.log
Możesz zaparzyć własne, ale wierzę, że jakaś mądra osoba już to dla ciebie napisała. Sprawdź IISLogs i IISLogs Lite!
Jeśli wszystko, co robisz, polega na usuwaniu dzienników, możesz wyłączyć wylogowywanie, jeśli nie jest to konieczne! zaoszczędzisz swojemu serwerowi dużo I / O!
źródło
Obecnie robię to za pomocą bardzo prostego skryptu pliku wsadowego:
Zrobiłem również wpis Zaplanowane zadanie, aby uruchamiać go codziennie, a nawet aktywowałem funkcję kompresji plików w tym folderze: wszystkie te rzeczy razem rozwiązały mój problem z plikami IIS na dobre.
Objaśnienie przełączników w pliku wsadowym:
Jeśli szukasz realnej alternatywy Powershell , zapoznaj się z inną odpowiedzią : aby uzyskać inne sugestie dotyczące prawidłowego zmniejszenia folderu LogFiles IIS, sprawdź ten post .
źródło
Cóż, jeśli chcesz je regularnie czyścić, dlaczego nie wyłączysz logowania w IIS? Możesz użyć czegoś takiego jak Google Analytics lub innej usługi, widzę, że wiele osób robi to, aby uniknąć bólu głowy z dziennikami IIS wpływającymi na wydajność i zajmującym całe miejsce na dysku, ale wszystko zależy oczywiście od twoich wymagań.
źródło
Microsoft sugeruje skrypt na swojej stronie internetowej .
Poniżej znajduje się zmodyfikowana wersja, której używam na własne potrzeby.
Zauważ, że zmieniłem z „DateCreated” na „DateLastModified”, ponieważ sprzeczna z intuicją data może być późniejsza niż ostatnia modyfikacja, jak to ma miejsce w przypadku skopiowanych plików. Prawdopodobnie nie chcesz usuwać plików, które zostały ostatnio zaktualizowane.
Następnie uruchom go za pomocą cscript.exe (na przykład
cscript.exe d:\scripts\logRetentionScript.vbs
).źródło
Utwórz zaplanowane zadanie na serwerze. W sekcji działań chcesz:
Podaj harmonogram dzienny lub tygodniowy. Gotowy.
źródło