ですべてを削除できます/var/log
か?または/var/log
、フォルダを残して(再帰的に)ファイルを削除するだけですか?
誰もが良いrm
コマンドラインを持っていますか?(私の管理スキルは私を緊張させます。)
注:私はDebianを使用しています。どのバージョンかわかりません。
ですべてを削除できます/var/log
か?または/var/log
、フォルダを残して(再帰的に)ファイルを削除するだけですか?
誰もが良いrm
コマンドラインを持っていますか?(私の管理スキルは私を緊張させます。)
注:私はDebianを使用しています。どのバージョンかわかりません。
回答:
ファイルを削除する代わりに、たとえばを使用してローテーションする必要がありますlogrotate
。
いつからログが実際に必要になるのか分からないので、ログをアーカイブする方が適切です(3か月などの妥当な年齢まで)。
logrotate
古いログファイルを圧縮して、多くのディスク容量を占有しないようにすることができます。
/ var / logのすべてを削除すると、存在すると予想されるフォルダー(exim4、apache2、apt、cups、mysql、sambaなど)が存在するため、ほとんどの場合、非常に短い時間で大量のエラーメッセージが表示されます。もっと)。さらに、ログファイルが存在しない場合、ログファイルを作成しないサービスまたはアプリケーションがあります。少なくとも空のファイルが存在することを期待しています。あなたの質問に対する直接的な答えは、実際には「これをしないでください!!!」です。。
ジョスキが指摘したように、これを行う理由はありません。私は何年も削除された単一のログファイルを持っていなかったDebianサーバーを実行しています。
マスターから仮想マシンのクローンを作成しています。マスターのログをクリアして、クローンを起動したときにマスターのログが取得されないようにすることは非常に理にかなっています。私はtcshでやった:
cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end
これにより、ログは消去されますが、ファイルは保持されます。
ファイルを削除せずに Linuxシステムのすべてのログを消去する:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
Samba(/var/www/samba
)はIPアドレスを使用してログファイル名を作成します。削除することもできます。
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done
cp /dev/null $CLEAN
によって> $CLEAN
。
オプションctimeを使用して古いファイルを見つけることができます...例えば:
find -ctime +30
bindbnが説明するように、最初にファイルの取得を試み、オプションdeleteを使用した後:D
/var/log
多くの場合drwxrwxr-x
、アクセス許可はであるため、ユーザーがrootであるか、特権グループに属していなければ、ユーザーは書き込みできません。つまり、非特権ユーザーは新しいログファイルを作成できません。
内のポイントにログインすることを期待するアプリケーション/var/log
しばしばで存在どこかにファイルを触れます/var/log
(多くの場合、システム特権で発生する)をインストールした時間の間、階層、および意志chmod
と可能性chown
になる権限を持たないユーザーのための適切な権限をその時点でアプリケーションを使用します。
たとえば、Apacheログは通常、によって書き込まれnobody
ます。このユーザーは、システムを過度のリスクにさらすことなく、Apacheがジョブを完了するための権限をできるだけ少なくしています。しかし、より一般的なアプリケーションでさえ、多くの場合、のログファイルに書き込むことができると期待しています/var/log
。
それでは、ログファイルとログファイルへのパスが存在しない場合はどうなりますか?それは完全にアプリケーション次第です。一部のアプリケーションは、ロギングを静かにスキップします。他の人は多くの警告を作成します。そして、他の人は単純に救済されます。確固たるルールはありません。アプリケーション開発者の警戒と、開発者がログを記録する能力をどの程度重要視しているかによって異なります。せいぜい、アプリケーションは内の宛先でログファイルに書き込みを行うか、場合によっては作成してから書き込みを試みますが、書き込み/var/log
権限のないユーザーによって実行されているため、書き込みができません。ファイルシステムのその部分。
したがって、短い答えはいいえ、すべてを削除しないでください。/var/log
システムで実行されるアプリケーションでそのようなことを行うための十分な特権を持つ契約ユーザーを破壊し、ノイズ、ログのサイレント障害、全面的な破損。
適切なアクションはlogrotate
、適切な構成ファイルでセットアップすることです。通常、ローテーションはcronジョブに関連付けられます。回転は、間隔ベース、サイズベース、またはその両方にすることができます。間隔が切れてもログファイルが空の場合、間隔ベースのローテーションを回避するルールを設定することもできます。ローテーションには、ログファイルの圧縮、圧縮、削除、シュレッディングなどが含まれます。
平均的なユーザーは、ログのローテーションを気にする必要はありません。開発者は、おそらく、使用するログにローテーションルールが確立されていることを確認する必要があります。実際、ソフトウェアが作成および作成するソフトウェア固有のログについては、インストール時にログローテーションを設定するのが開発者側のマナーである可能性があります。
ここに簡単なクリーナーを実装しました:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
それは単に:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(大文字小文字を区別しません)/var/log
^.*/.+\.log$
(大文字小文字を区別しません)