Linuxファイル削除後にスペースが解放されない問題の詳しい説明

Linuxファイル削除後にスペースが解放されない問題の詳しい説明

序文

システム領域の使用量が大きすぎて消去する必要がある場合、または特定のファイルを消去する必要がある場合、削除コマンドを実行してもディスク領域が解放されないことがあります。初めてこの状況に遭遇すると、多くの人は混乱し、Windows システムのごみ箱のように、削除はごみ箱への論理的な削除にすぎないのではないかと疑問に思うでしょう。実はそうではありません。Linux のごみ箱機能についてもっと知りたい場合は、私に連絡したり、情報を調べたりして学ぶことができます。これはより実用的な方法でもあります。ここでは、主にファイルの削除後にスペースが解放されない問題を練習します。

1. 実験準備

このシナリオをシミュレートする方法は多数ありますが、主にファイルが占有されているシナリオを実現する方法です。最も簡単な方法は、ファイルをコピーすることです。もう 1 つの一般的な方法は、プログラミングやシェルのスキルに長けた学生が、ファイルにコンテンツを継続的に書き込むプログラムまたはスクリプトを作成することです。今回は主にファイルのコピーで素早く再現しました。

1.1 少し大きめのファイルを作成する

/* 主にこのファイル操作用 */
[root@c7_2 ローカル]# ll -h 
合計 3.0G
-rw-r--r--。1 ルート ルート 2.5G 5月4日 17:43 all_backup.tar.gz

/* 現時点でルートディレクトリの使用量は 6.5G です */
[root@c7_2 ~]# df -lh 
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /実行
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 6.5G 39G 15% /
/dev/sda1 1014M 150M 865M 15% /ブート
tmpfs 378M 0 378M 0% /run/user/0

1.2 scpコマンドを使用してファイルを占有する

/* 他のホストへのリモートコピーを開始します*/
[root@c7_2 ローカル]# scp all_backup.tar.gz [email protected]:/home/test/ 

ホスト「192.168.28.226 (192.168.28.226)」の信頼性を確立できません。
ECDSA キーのフィンガープリントは SHA256:QfJb1DogFmdZ0hkeVRvn2VHke+tkZ2+sNljhBBudooc です。
ECDSA キーのフィンガープリントは MD5:2a:8a:63:80:35:17:f7:e9:2a:ea:13:98:eb:26:30:ba です。
本当に接続を続行しますか (はい/いいえ)? はい
警告: '192.168.28.226' (ECDSA) が既知のホストのリストに永続的に追加されました。
[email protected] のパスワード: 
all_backup.tar.gz 0% 2432KB 2.4MB/秒 17:53 ETA^Z
[1]+ scp all_backup.tar.gz [email protected]:/home/test を停止しました
 /* バックグラウンドで実行*/
[root@c7_2 ローカル]# bg %1    
[1]+ scp all_backup.tar.gz [email protected]:/home/test &

1.3 ファイルの削除

/* ファイルを削除 */
[root@c7_2 ローカル]# rm -f all_backup.tar.gz 
/* ディスク容量をチェック、変化なし*/
[root@c7_2 ローカル]# df -lh 
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /実行
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 6.5G 39G 15% /
/dev/sda1 1014M 150M 865M 15% /ブート
tmpfs 378M 0 378M 0% /run/user/0
/* ファイルは存在しません */
[root@c7_2 ローカル]# ll -h 
合計 3.0G
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日 bin
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日など
drwxr-xr-x. 2 ルート ルート 6 4月 11 2018 ゲーム
drwxr-xr-x. 2 ルート ルート 6 4月 11 2018 include
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日 lib
drwxr-xr-x. 2 ルート ルート 6 4月 15 05:56 lib64
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日 libexec
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日 sbin
drwxr-xr-x. 5 ルート ルート 49 11月 17 16:46 シェア
drwxr-xr-x. 2 ルート ルート 6 2018年4月11日 src

2. 治療方法

lsof (開いているファイルのリスト) コマンドを使用すると、開いているファイルとそれを使用しているプロセスを表示できます。

lsof コマンドは、最小限インストールされたシステムでは使用できません。まず yum を使用してインストールできます。

 yum インストール -y lsof

2.1 lsof ファイルの表示

開いているすべてのファイルを表示し、削除されたファイルを除外します

[root@c7_2 local]# lsof |grep 削除済み
ファイアウォールd 818 ルート 6u REG 253,0 4096 36061750 /tmp/ffi0SEit6 (削除済み)
gmain 818 998 root 6u REG 253,0 4096 36061750 /tmp/ffi0SEit6 (削除済み)
調整済み 1180 ルート 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (削除済み)
gmain 1180 1602 root 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (削除済み)
調整済み 1180 1603 ルート 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (削除済み)
調整済み 1180 1605 ルート 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (削除済み)
調整済み 1180 1606 ルート 8u REG 253,0 4096 33554962 /tmp/ffio5Nu8r (削除済み)
scp 1798 root 3r REG 253,0 2665433605 104181296 /usr/local/all_backup.tar.gz (削除済み)

先ほど削除してそのプロセスで開いたファイルを見つけました

2.2 プロセスを見る

lsof を使用すると、all_backup.tar.gz ファイルがプロセス 1798 によって占有されていることがわかります。特定のプロセスが何であるかを確認できます。

[root@c7_2 ローカル]# ps -ef|grep 1798
ルート 1798 1729 0 17:47 pts/0 00:00:00 scp all_backup.tar.gz [email protected]:/home/test
ルート 1799 1798 2 17:47 pts/0 00:00:03 /usr/bin/ssh -x -oForwardAgent=no -oPermitLocalCommand=no -oClearAllForwardings=yes -l test -- 192.168.28..226 scp -t /home/test
ルート 1868 1806 0 17:49 pts/1 00:00:00 grep --color=auto 1798

これは前に実行したコピーコマンドです

2.3 スペースを解放する

このようなクエリステータスの場合は、対応するプログラムを終了する必要があります

/* 対応するプロセスを強制終了します */
[root@c7_2 ローカル]# キル -9 1799 1798
/* スペースが解放されました */
[root@c7_2 ローカル]# df -lh 
ファイルシステムサイズ 使用済み 使用可能使用率 マウント先
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /実行
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 4.0G 42G 9% /
/dev/sda1 1014M 150M 865M 15% /ブート
tmpfs 378M 0 378M 0% /run/user/0

注:継続的に書き込まれているログをクリアする場合は、echo " ">filename コマンドを使用して、プロセスを強制的に終了せずにオンラインでファイルをクリアできます。この方法が機能しない場合は、プロセスを終了してみてください。

3. 結論

この記事は主に以下のシナリオに適用されます。

  • ファイルスペースを削除しても解放されない
  • ディスクがいっぱいですが、ファイルが見つかりません

もう一度お伝えしますが、echo " ">filename コマンドを使用してオンラインでファイルを消去できる場合は、プロセスを強制的に終了する必要はありません。この方法が機能しない場合は、プロセスを終了してみてください。

Linux のファイル削除後にスペースが解放されない問題についての記事はこれで終わりです。Linux のファイル削除後にスペースが解放されない問題に関する関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]
  • Linuxでファイルを削除してもスペースが解放されない問題の対処方法
  • Linux のリンク解除機能とファイルの削除方法
  • Linux は MySQL データベースのスケジュールされたバックアップを実装し、30 日以上前のバックアップ ファイルを削除します。
  • Linux は定期的に MySQL データベースをバックアップし、以前のバックアップ ファイルを削除します (推奨)
  • Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法
  • Linux で大きなファイルの内容を消去または削除する 5 つの方法
  • Linux でファイルを削除するさまざまな方法の効率の比較

<<:  HTMLフォーム送信方法のケーススタディ

>>:  MySQL スライディング集計/年初来集計の原理と使用例の分析

推薦する

一般的なブラウザ互換性の問題(概要)

ブラウザの互換性とは、スタイルの互換性 (CSS)、インタラクションの互換性 (JavaScript...

Docker Composeのデプロイと基本的な使い方の詳しい説明

1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...

Vue マウスホイールスクロール切り替えルーティング効果を実装する方法

ルート ルーティング コンポーネント (アプリの下のルート ルーティング コンポーネント。子コンポー...

Vueの7つの値転送メソッドの詳細な説明

1. 父から息子へ子コンポーネントにpropsフィールドを定義し、その型は配列です (フィールド値の...

MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス

序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...

HTML テーブルタグチュートリアル (26): セルタグ

<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...

MySQL は ACID トランザクションをどのように実装しますか?

序文最近、面接中に、MySQL の InnoDB エンジンがどのようにトランザクションを実装している...

CocosCreator 入門チュートリアル: TS で初めてのゲームを作る

目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...

JavaScript Canvas で三目並べゲームを実装

この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...

Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明

目次必要:要点:これまでの要点に従って、コンポーネントのプロパティを確立できます。コンポーネントの基...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...

Sparkの紹介とHadoopとの比較

目次1. SparkとHadoopの比較1.1 Haoopの欠点1.2 Hadoop MR に対する...

MySQL 5.7.23 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事はMySQL 5.7.23 winx64のインストールチュートリアルを記録します。具体的な内...

Alibaba Cloud サーバーの購入とインストール方法

1. サーバーを購入するこの例では、購入したサーバーはAlibaba Cloudです。大学生はAli...