/var
本番サーバーのパーティションがいっぱいになった場合の回避策は何ですか?
私の解決策は次のとおりです。
- LVMパーティションの場合は、オンラインで拡張できます。
- ログを圧縮できます。
- 古いデータを削除できます。
この問題を解決して克服するためのより多くの可能な方法を提案してください。
この問題の経験を共有してください。
答え1
このような状況(何かが満たされる状況)への私のアプローチは、まず犯人を見つけることです。
使い方から始めてdu -sh *|grep G
続けましたdu -sh *|grep M
。それを発見したとき、私はなぜ何がいっぱいになり始めたのかを調べ始めました。
- そんなに高いログレベルが必要ですか?
- ログインする場合 - ホームブルーまたはカスタムプログラムにも logrotate(/etc/logrotate.d/) を使用します。
- これが本当のディスクホーグラなら、私はそれを自分のLVに分けてみます
そのため、現在のサーバーの標準Linuxディスクレイアウトは次のようになります。
- /var LVには2GBがあります。
- /var/log LV 8GB
- /var/tmp LV容量は4GBです。
これは現在、ほぼすべてのユースケースに十分です。
答え2
LVM以外のパーティションで同様の問題が発生したことがありました。たとえば、あなたの場合は、次のことを試すことができます。
mv /var/cache /more/spacious/partition/cache
ln -s /more/spacious/partition/cache /var/cache
私はシステムディレクトリではなくディレクトリを使用してこれを行っていましたが、これまで悪い副作用は観察されませんでした。ただし、システムディレクトリの場合は状況が異なる場合があります。確認/反論するには、より多くの知識を持つ人が必要です。
編集する
より安全にするためにこれを行うことができます
cp -a /var/cache /new/place/cache rm -rf /var/cache ln -s /new/place/cache /var/cache
mv
これにより、コールに問題が発生した場合(システムのクラッシュ、停電など)、キャッシュが失われることはありません。コピー時にこのディレクトリに何も書き込まれないようにするには、LiveCDを使用することをお勧めします。
答え3
CIS基準では、ルートパーティションがいっぱいになり、システムがハングする最悪の結果を軽減するために、/ home、/ tmp、および/ varを別々のパーティションに配置する必要があります。
最初からそれを埋めるのに役立つ他のソリューションがあります。もちろんモニタリングはその一つです。
echo -e '#!/bin/bash\nCURRENT=$(df / | grep / | awk '\''{ print $5}'\'' | sed '\''s/%//g'\'') ; THRESHOLD=95; if [ "$CURRENT" -gt "$THRESHOLD" ] ; then mail -s "Disk Space Alert Used: $CURRENT" $EMAIL <<< $(hostname -i; uname -a); fi' >> /etc/cron.hourly/check-space && chmod +x /etc/cron.hourly/check-space
入力しないようにシステムログを設定することもできます。
echo 'SystemMaxUse=200M' >> /etc/systemd/journald.conf && systemctl restart rsyslog
固定サイズのvarfileを作成して、/ etc / fstabの/ varにマウントできます。 (
fallocate -l 600M /varfile && mkfs.ext4 /varfile
echo -e "/home/varfile /home/user1 ext4 defaults,nofail 0 2" >> /etc/fstab
ダンプなし、最初にファイルチェックの優先順位はルートです。)
次のコマンドを使用してサイズを変更します。fallocate -l 200M /tmpfile && mount /tmpfile /tmp && resize2fs /dev/loop1
/home、/tmp ディレクトリを使って安全にファイルインストールをしましたが、添付されたライブディスクを使用したり、ルートをマウントせずに現在の内容をインストールファイルにコピーする方法が見つからず、/var テストをしませんでした。ファイルシステムに優れています。ログが利用可能なスペースにわたって流れるようにし、必要な監視を取得することは私にとっては良いと思われますが、最小サーバーよりも大きいVMの場合はこれを再検討できます。
個々のconfファイルのmaxsizeを使用して特定のログサイズを制限することもできます。ただし、/var/lib の apt リストや clamav 定義や、/var/cache/apt/archives にインストールされたキャッシュ・パッケージなどのエントリーはログとともに増加します。後者は、apt clean
定期的に使用される無人アップデート設定で制御できます。