私のサーバーのハードドライブの空き容量を解放しようと、sedを使用してログファイルの以前の日付を一致させましたが、縮小しましたが、私のルートパーティションは以前に使用した91の代わりに98%のスペースを使用しています。 %sedに電話しました。これでsed -i '/^Jan/ d' file.log
私はログファイルを6Gから400Mに減らしました。一時ファイルまたは類似のファイルを検索しようとしていますが、find / -size +1G
新しいファイルと一致しません。
編集する:echo -n > file.log
サービスの競合を避けるためにこれを行いましたが、問題がまだ存在するため、これは一時的な現象です。
答え1
sedのオプションは--in-place
実際にはファイルをその場で編集しないので、次のようになります。
if sed ... input > /tmp/output$$ ; then
mv /tmp/output$$ input
else
rm /tmp/output$$
fi
これは、コマンドを実行するmv
前にディスクの入力ファイルサイズを倍増できることを意味します。ファイルシステムがいっぱいになると非常に非効率的になります。
より大きな問題は、ディスク容量が足りない場合、または/var/logと/tmpを/と同じパーティションにマウントし、/が小さいパーティションにある場合はそれを埋めることです。今そして次の一週間全体および次の週等。
ディスクがどのように設定されているかを確認してくださいmount
。あなたが必要とする:df /tmp
df /var/log
- ディスクインストールの回復
- より大きなディスクを購入する
- 調査
logrotate
- あまり記録しないでください
- または上記の組み合わせ
答え2
sed -iでstraceを実行すると、一時ファイルの場所が明確に表示されます。しかし、最も簡単な方法は-iを使用しないことです。スペースがあるパーティションのファイルに出力をリダイレクトします。