web-dev-qa-db-ja.com

/ var / logディレクトリをdebianlinuxで読み取り専用にするのは安全ですか?

512MBのCFカーをHDとして搭載した非常に小さなサーバーをインストールしています。十分なスペースがないだけでなく、ディスクへの書き込みを最小限に抑えたいと思います。

/ var/logディレクトリを完全にクリアし、読み取り専用(書き込み保護)にしたいのですが。

そうするとシステムがハングしますか?

4
user3379982

読み取り専用にする代わりに、tempfsとして/var/logを作成します。そして定期的にプルーンします。もちろん、これは十分なスペアRAMが利用可能な場合にのみ機能します。

/var/tmpのような他の可能な必須ではないディレクトリに対しても同じことができます。

私の/etc/fstabのエントリ(現在コメントアウトされています):

tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777,size=128M   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755,size=128M   0  0
8
Anthon

あなたがそれを読み取り専用にすることを計画しているなら、それは価値がないのと同じくらい良いです。ログに記録する方法と内容を制御する必要があります。

スペースが不足している場合は、適切なサイズの/ varパーティションを個別に用意し、ReiserFSなどの小さなファイルを多数処理できるファイルシステムを選択することをお勧めします。

4
Ghassan

私のコメントで述べたように、書き込み可能な/var/logはある種重要ですが、できるだけ節約されないようにするためにできることがあります。たとえば、logrotateを構成して、ログファイルをサイズに基づいてローテーションし、古いファイルを圧縮することができます。 syslog以上をログに書き込むようにCRITを構成することもできます(残りは破棄されます)

logrotate例:

   compress

   /var/log/messages {
       rotate 5
       size 100k
       postrotate
           /usr/bin/killall -HUP syslogd
       endscript
   }

(cronジョブでも実行されるようにlogrotate /etc/logrotate.confを構成する必要があります)。

rsyslog.conf例:

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$IncludeConfig /etc/rsyslog.d/*.conf

*.crit                                                  /var/log/messages
*.emerg                                                 *

何もログに記録されないため、これはおそらく最良の中間点ですが、重大なイベントについては通知されます。ログの保持が重要な場合は、より大きなストレージを備えたサーバーにリモートsyslogを構成することも検討してください。

1
Bratchley