512MBのCFカーをHDとして搭載した非常に小さなサーバーをインストールしています。十分なスペースがないだけでなく、ディスクへの書き込みを最小限に抑えたいと思います。
/ var/logディレクトリを完全にクリアし、読み取り専用(書き込み保護)にしたいのですが。
そうするとシステムがハングしますか?
読み取り専用にする代わりに、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
あなたがそれを読み取り専用にすることを計画しているなら、それは価値がないのと同じくらい良いです。ログに記録する方法と内容を制御する必要があります。
スペースが不足している場合は、適切なサイズの/ varパーティションを個別に用意し、ReiserFSなどの小さなファイルを多数処理できるファイルシステムを選択することをお勧めします。
私のコメントで述べたように、書き込み可能な/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を構成することも検討してください。