解決策 1:
ファイルを削除する代わりに、ローテーションする必要があります。 g. logrotate
を使用 .
しばらく前のログが実際にいつ必要になるかはわからないため、ログをアーカイブしておくことをお勧めします (3 か月など、適切な期間まで)。
logrotate
古いログ ファイルを圧縮して、多くのディスク領域を占有しないようにすることができます。
解決策 2:
すべてのファイルを削除:
find /var/log -type f -delete
すべての .gz および回転されたファイルを削除
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
「-delete」なしでコマンドを実行してテストしてください。
解決策 3:
/var/log 内のすべてを削除すると、そこには存在すると予想されるフォルダー (exim4、apache2、apt、cups、mysql、samba など) があるため、非常に短時間で大量のエラー メッセージが表示される可能性があります。もっと)。さらに、ログファイルが存在しない場合、ログファイルを作成しないサービスまたはアプリケーションがいくつかあります。彼らは、少なくとも空のファイルが存在することを期待しています。したがって、あなたの質問に対する直接的な答えは、「これをしないでください!!!」 です。 .
joschi が指摘したように、これを行う理由はありません。何年もログファイルが1つも削除されていないdebianサーバーを実行しています。
解決策 4:
マスターから仮想マシンのクローンを作成しています。クローンを起動するときにマスターのログを取得しないように、マスターのログをクリアすることは完全に理にかなっています。私は tcsh で行いました:
cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
これにより、ログはクリアされますが、ファイルは保持されます。
解決策 5:
Linux システム上のすべてのログを削除せずにクリーニングする ファイル:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
サンバ (/var/www/samba
) は、IP アドレスを含むログ ファイル名を作成します。それらを削除することもできます:
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done