Powershellでテキスト分割

$i=1; cat .\hoge.txt -ReadCount 100000 | % { $_ > foo_$i.txt;$i++ }

(カレントディレクトリのhoge.txt100000行単位で、foo_1.txt, foo_2.txt のような分割ファイルを作成するコマンド)

とある本番環境のAPサーバに、100ギガ超えのログファイルができていた。
聞けば、たまに起きる事象で、ファイルが開けないから問答無用で捨てるらしい。
開けない理由は 大きすぎる とのこと。

小さくすればいい。エディタで開くのと違って上記コマンドのReadCount指定であれば全部メモリに読み込むわけじゃないので、本番リソースに影響なく内容を見れる。
(個人的にはでかいログファイルをサーバで見るときにはリソースを無駄遣いしないためにも当然にして使っていたが、周囲はそうでもなかったらしい。)

結果、このミドルウェアの起動時のクラスロードが失敗しているらしかった。バージョンが古すぎてファームアップでもしようものなら他にどんな弊害があるかわからないので、結果的にそっと閉じた。原因がわかっただけどもまずはOK。そうと分かれば、異常なログファイルを検知したら、指定時間に再起動してファイルを削除するスクリプトを書けばよろし。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA