{"id":4298,"date":"2015-03-11T10:06:25","date_gmt":"2015-03-11T09:06:25","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=4298"},"modified":"2015-03-11T10:06:25","modified_gmt":"2015-03-11T09:06:25","slug":"c-mit-windows-powershell-die-letzten-x-zeilen-eines-logfiles-behalten","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2015\/03\/c-mit-windows-powershell-die-letzten-x-zeilen-eines-logfiles-behalten\/","title":{"rendered":"[C#] Mit Windows Powershell die letzten x Zeilen eines Logfiles behalten"},"content":{"rendered":"<p>F\u00fcr eine Datenauswertung ben\u00f6tigte ich\u00a0die aktuellsten Eintr\u00e4ge eines immer weiter wachsenden Logfiles, welches ich mir via HTTP periodisch von einem entfernten Windows PC abholte.\u00a0Auf Dauer wurde das Logfile jedoch\u00a0so gro\u00df, dass sich ein kompletter Download nicht mehr lohnte. Mittels der Windows Powershell wollte ich das Logfile auf dem Quellrechner regelm\u00e4\u00dfig bereinigen und lediglich die letzten 1000 Eintr\u00e4ge beibehalten. Dass das so einfach sein w\u00fcrde, hatte ich dabei nicht erwartet.<\/p>\n<pre class=\"lang:ps mark:7 decode:true\">\/\/ Set the variable $file \r\nSet-variable -Name file D:\\test.log\r\n\r\nfunction TruncateLogfile()\r\n{\r\n\t\/\/ Fetch the Logfile, select the last x rows and write them into a temp file\r\n\tGet-Content $file | select -Last 1000 | set-content \"$file-temp\" \r\n\r\n\t\/\/ Overwrite the logfile with the temp-file's content. \r\n\tmove \"$file-temp\" $file -Force\r\n}\r\n\r\n\/\/ Call the truncating method every 2 seconds until we stop the script\r\nwhile(1){\r\n    Start-Sleep -Seconds 2 \r\n    TruncateLogfile\r\n}<\/pre>\n<p>Die eigentliche Arbeit macht dabei die vierte Zeile. &#8222;<code>Get-Content &lt;Filename&gt; | select -Last &lt;X&gt;| set-content \"&lt;Output-Filename&gt;\"<\/code>&#8220; Sie nimmt einen Pfad zu einer Datei entgegen, liest die letzten X Zeilen aus und schreibt das Ergebnis in eine andere, tempor\u00e4re Datei.<\/p>\n<p>Ich glaube ich sollte mich mal ein wenig mehr mit der Powershell befassen. Das gew\u00fcnschte Ergebnis lie\u00df sich n\u00e4mlich so einfach erreichen, dass ich fortan auch andere immer wiederkehrende Aufgaben mal versuchen werde mit der Powershell zu l\u00f6sen.<\/p>","protected":false},"excerpt":{"rendered":"<p>F\u00fcr eine Datenauswertung ben\u00f6tigte ich die aktuellsten Eintr\u00e4ge eines immer weiter wachsenden Logfiles, welches ich mir via HTTP periodisch von einem entfernten Windows PC abholte. Auf Dauer wurde das Logfile jedoch so gro\u00df, dass sich ein kompletter Download nicht mehr lohnte. Mittels der Windows Powershell wollte ich das Logfile auf dem Quellrechner regelm\u00e4\u00dfig bereinigen und lediglich die letzten 1000 Eintr\u00e4ge beibehalten. Dass das so einfach sein w\u00fcrde, hatte ich dabei nicht erwartet.<\/p>\n","protected":false},"author":1,"featured_media":4300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[39,152],"class_list":["post-4298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codeschnippsel","tag-c","tag-powershell"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/03\/powershell-truncate-logfile.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/4298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=4298"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/4298\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/4300"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=4298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=4298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=4298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}