Linux ウェブサーバーで次のエラーが発生した場合:-bash:No space left on device は、Linux パーティションの一部に空き容量が残っていないことを意味し、できるだけ早くディスク容量を解放する必要があります。
サーバーのスペースが不足すると、多くのシステム サービスが失敗し始めます。この投稿では、この「bash:no space left on device」エラーの主な原因を分析します。
Bash の修正:デバイス エラーにスペースが残っていません
このエラーには主に 2 つの原因があります:
1- 大きなファイルを蓄積して、使用可能なすべてのスペースを使い果たしました。
cPanel および Linux サーバーは多くの場合、多くのエラー ログを生成します。このログは、場合によっては非常に大きくなり、有効なディスク スペースを GB 単位で浪費する可能性があります。次のコマンドを実行して、各ウェブサイトの public_html ディレクトリ内からユーザーの error_logs を削除できます:
rm /home/*/public_html/error_log -fv rm /home/*/public_html/*/error_log -fv rm /home/*/public_html/*/*/error_log -fv rm /home/*/public_html/*/*/*/error_log -fv
または、Ivan が上記で提案したように:
find /home -type f -name "error_log" -size +10M -delete
「すべてのサブディレクトリでそれらを検索します。サイズを指定しながら、通常の rm を使用するよりもすばやく処理できます。」
Apache ログを削除することも、ディスク容量が不足しているときにディスク容量を節約するための便利な方法です。 Apache ログが必要ない場合は、削除してみてください:
rm -fv /usr/local/apache/logs/*
cPanel のディスク容量を解放する高度な方法については、この投稿を読むことをお勧めします。ここでは、cPanel サーバーのディスク容量を解放する方法に関するすべてを完全に説明しています
2- inode が不足しています。次のコマンドを入力して、これが原因かどうかを確認してください:
df -i
次のような場合:
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 1420790 1420790 0 100% /
その後、間違いなく inode を使い果たしました。これを修正する最善の方法は、サーバーの inode を解放することです。
この「bash:no space left on device」エラーは、多くの場合、php セッション ファイルが多すぎるために発生します。
多くの場合、PHP セッション ファイルは次の場所にあります:
/var/lib/php/sessions
ただし、php セッション ファイルの場所は、php.ini セッション ハンドラのパスによって異なります。これは、一般的な php.ini ファイルで定義されています。正しい場所からファイルを削除していることを確認しましょう。 php.ini ファイルを見つけるには:
find / -name php .ini
CentOS では通常、/etc/php.ini にあります。 PHP セッション ファイルが保存されている場所を確認するために、セッションの保存パスを見てみましょう:
grep session.save_path /etc/php.ini
このような結果が得られた場合、セッションの保存パスは /var/lib/php/session
です。session.save_path = "/var/lib/php/session"
指定したフォルダの内容の削除を試みることができます:
rm /var/lib/php/session/* -fvR
この後、すべての php セッションを削除する必要があります。
ただし、ディレクトリ内にファイルが多すぎる場合、rm コマンドは期待どおりに機能しません。代わりに、find コマンドを使用し、このようなクイック スクリプトを使用して各要素に対して -exec rm を実行して、この bash スクリプトを処理し、php セッション ファイルを削除することができます。 :
find /var/lib/php/sessions -type f -cmin +24 -name "sess_*" -exec rm -f {} \;
結論
現時点では、問題は修正されているはずです。これで、bash の修正方法がわかりました。Linux ボックスのデバイスにスペースが残っていません。一定時間 (数日または数週間) 後に php セッション ファイルを削除するように cronjob を設定することもできます。
Bash:デバイスにスペースが残っていない 最終変更:2017 年 3 月 7 日 Esteban Borges