Linux: Disk quota exceeded
ディスククォータ制限に達した場合のエラー原因と解決策
概要
ユーザーまたはグループに設定されたディスク使用量の制限に達した場合のエラーです。
エラーメッセージ
``` write error: Disk quota exceeded ```
原因
- ユーザークォータ超過: 個人の使用量が制限を超えた
- グループクォータ超過: グループ全体の使用量超過
- inode制限: ファイル数の制限に達した
- プロジェクトクォータ: ディレクトリ単位の制限
解決策
1. 現在のクォータを確認
```bash
自分のクォータを確認
quota -s
詳細表示
quota -v
全ユーザーのクォータ確認(root)
repquota -a ```
2. 大きなファイルを特定
```bash
ホームディレクトリの使用量
du -sh ~/*
大きなファイルを探す
find ~ -type f -size +100M -exec ls -lh {} ;
ディレクトリサイズ順
du -h ~ | sort -rh | head -20 ```
3. 不要なファイルを削除
```bash
古いログを削除
find ~/logs -name “*.log” -mtime +30 -delete
キャッシュをクリア
rm -rf ~/.cache/*
npm キャッシュ
npm cache clean –force
pip キャッシュ
pip cache purge ```
4. クォータ制限を変更(管理者)
```bash
ユーザークォータを編集
edquota -u username
ソフト/ハード制限を設定
setquota -u username 5G 6G 0 0 /home ```
5. inode使用量を確認
```bash
inode使用状況
df -i
多数のファイルがあるディレクトリを探す
find ~ -type d -exec sh -c ’echo “$(find “{}” -maxdepth 1 | wc -l) {}”’ ; | sort -rn | head -20 ```
6. 圧縮してスペースを節約
```bash
古いログを圧縮
gzip ~/logs/*.log
ディレクトリを圧縮
tar -czvf archive.tar.gz old_directory/ && rm -rf old_directory/ ```
よくある間違い
- node_modules や vendor を大量に保持
- ログローテーションを設定しない
- /tmp を対象外と思い込む
関連エラー
関連エラー
Linux の他のエラー
この記事は役に立ちましたか?