Linux でジャンクファイルをエレガントに削除する方法

Linux でジャンクファイルをエレガントに削除する方法

あなたも私と同じように、コンピューターのファイルを整然と整理し、不要なファイルを適宜削除するプログラマーでしょうか?もしそうであれば、記事の内容について喜んで議論しましょう。そうでない場合は、そのまま残って楽しみに参加してください (>-<)。

以下は今日の主役である tmpwatch です。これは、指定された時間内にアクセスされていないファイルを再帰的に削除し、ディレクトリを空にするのに役立ちます。

もちろん、find コマンドを使用して、x 日以上アクセスされていないファイルを検索して削除することもできますが、tmpwatch を使用すると 1 ステップで実行できるので、なぜ実行しないのでしょうか。

デフォルトでは、tmpwatch はアクセス時間に基づいて削除するファイルまたはディレクトリを決定します。さらに、inode の変更時間や修正時間に応じて操作することもできます。

通常、tmpwatch は、/tmp ディレクトリ内のファイルや、古いログ ファイルなど他の場所にある未使用のファイルを削除するために使用されます。

重要な警告! !

/ (ルート) で tmpwatch を実行しないでください。
/ (ルート) で tmpwatch を実行しないでください。 !
/ (ルート) で tmpwatch を実行しないでください。 ! ! (三度警告します!^-^)

/ ディレクトリには Linux システムの動作に必要な重要なファイルが含まれていますが、tmpwatch には / ディレクトリでの実行を防ぐための保護メカニズムが組み込まれていません。これらの重要なファイルが削除されると、結果は悲惨なものになります。したがって、友人はこのコマンドを使用するときは注意する必要があります。

tmpwatchをインストールする

tmpwatch のインストールは、ほとんどの Linux ディストリビューションのデフォルトのリポジトリで利用できます。

Fedora の場合:

$ sudo dnf tmpwatchをインストールします

CentOS の場合:

$ sudo yum tmpwatchをインストールします

openSUSE の場合:

$ sudo zypper tmpwatchをインストールします

Debian とその派生版 (Ubuntu など) では、tmpwatch は tmpreaper とも呼ばれます。

$ sudo apt インストール tmpreaper

tmpwatch/tmpreaper を使用して、指定された時間内にアクセスされていないファイルを削除します。

tmpwatch と tmpreaper の使い方はほぼ同じであり、同じコマンドと見なすことができます。説明を簡単にするために、この記事では tmpwatch を例として使用します。Debian ベースのシステムを使用している方は、次の tmpwatch を tmpreaper に変更できます。

1. X 日以上アクセスされていないファイルを削除する<br /> 例: /var/log/ フォルダ内の 10 日以上アクセスされていないすべてのファイルと空のディレクトリを削除します

tmpwatch 10d /var/log/

2. X 日以上変更されていないファイルを削除する<br /> 前述のように、tmpwatch はデフォルトでアクセス時間に基づいてファイルを削除します。ここでは、-m オプションを使用して、変更時間に基づいてファイルを削除します。

例: 10日以上変更されていない/var/log/フォルダ内のファイルを削除する

tmpwatch -m 10d /var/log/

上記の 2 つのコマンドの d は、次の時間パラメータです。

  • d - 日数
  • h - 時間
  • m - 分
  • s - 秒

デフォルトの時間パラメータは時間です。過去 10 時間以内に変更されていないファイルを削除する場合は、次の形式で記述できます。

tmpwatch -m 10 /var/log/

3. シンボリックリンクを削除する

シンボリック リンクは -s オプションを使用して削除できます。

tmpwatch -s 10 /var/log/

4. すべてのファイル(通常のファイル、シンボリックリンク、ディレクトリを含む)を削除します。

tmpwatch は通常のファイルだけでなく、シンボリック リンク、ディレクトリ、パイプ ファイルなどの特殊なファイルも削除できます。この場合、-a オプションを使用する必要があります。

tmpwatch -a 10 /var/log/

5. 削除時にディレクトリを除外する<br /> ディレクトリを削除したくない場合は、--nodirs オプションを使用して、そのディレクトリを削除対象から除外できます。

tmpwatch -am 10 --nodirs /var/log/

6. 削除をテストする(実際には何も削除しない)
ここで再度強調しておきたいのは、重要なディレクトリ内のファイルを削除するときは、急いで tmpwatch コマンドを使用しないことです。コマンドを実行した後、どのファイルが削除されるかを最初に確認することをお勧めします。そうしないと、間違ったファイルを削除した場合に頭が痛くなります。 。 (良い習慣を身につけましょう!)

-t を使用してテスト モードに入ることができます。

tmpwatch -t 30 /var/log/

CentOS 7での出力:

ファイル /var/log/wtmp を削除します
空の場合はディレクトリ /var/log/ppp を削除します
空の場合はディレクトリ /var/log/tuned を削除します
空の場合はディレクトリ /var/log/anaconda を削除します
ファイル /var/log/dmesg.old を削除します
ファイル /var/log/boot.log を削除します
ファイル /var/log/dnf.librepo.log を削除します

Debian ベースのシステムでの出力:

$ tmpreaper -t 30 /var/log/
(PID 1803) ディレクトリ `/var/log/' をクリーンアップするふりをしています。
(PID 1804) ディレクトリ `apache2' をクリーンアップするふりをしています。
ファイル `apache2/error.log' を削除するふりをします。
ファイル「apache2/access.log」を削除するふりをします。
ファイル「apache2/other_vhosts_access.log」を削除するふりをします。
(PID 1804) `apache2' の再帰から戻りました。
(PID 1804) ディレクトリ `dbconfig-common' をクリーンアップするふりをしています。
ファイル `dbconfig-common/dbc.log' を削除するふりをします。
(PID 1804) `dbconfig-common' の再帰から戻ります。
(PID 1804) ディレクトリ「dist-upgrade」をクリーンアップするふりをしています。
(PID 1804) `dist-upgrade' の再帰から戻りました。
(PID 1804) ディレクトリ `lxd' をクリーンアップするふりをしています。
(PID 1804) `lxd' の再帰から戻ります。
ファイル `/var/log//cloud-init.log' を削除するふりをします。
(PID 1804) ディレクトリ「landscape」をクリーンアップするふりをしています。
ファイル「landscape/sysinfo.log」を削除するふりをします。
(PID 1804) 「landscape」の下への再帰から戻ります。
[...]

上記のプロセスでは、実際にファイルは削除されませんが、削除をシミュレートして、どのファイルが削除されるかを示すだけです。

削除するファイルが正しいことを確認したら、-t オプションを削除し、tmpwatch を実行して実際に削除することができます。

7. 強制削除
デフォルトでは、tmpwatch は現在のユーザーが書き込みアクセス権を持たないファイルを削除しません。ただし、これらのファイルを削除する必要がある場合は、-f オプションを使用して強制的に削除することができます。

tmpwatch -f 10h /var/log/

8. 削除時に特定のファイルをスキップする<br /> 削除時に特定のファイルを保持したい場合、つまりホワイトリストに追加したい場合は、--protect オプションを使用できます。 txt タイプのファイルをすべて保持したいとします。

tmpreaper --protect '*.txt' -t 10h /var/log/

出力:

(PID 2623) ディレクトリ `/var/log/' をクリーンアップするふりをしています。
(PID 2624) ディレクトリ `apache2' をクリーンアップするふりをしています。
ファイル `apache2/error.log' を削除するふりをします。
ファイル「apache2/access.log」を削除するふりをします。
ファイル `apache2/other_vhosts_access.log' を削除するふりをします。
(PID 2624) `apache2' の再帰から戻りました。
(PID 2624) ディレクトリ `dbconfig-common' をクリーンアップするふりをしています。
ファイル `dbconfig-common/dbc.log' を削除するふりをします。
(PID 2624) `dbconfig-common' の再帰から戻ります。
(PID 2624) ディレクトリ「dist-upgrade」をクリーンアップするふりをしています。
(PID 2624) `dist-upgrade' の再帰から戻りました。
空のディレクトリ「dist-upgrade」を削除するふりをします。
`--protect' パターンに一致するエントリはスキップされました。`ostechnix.txt'
(PID 2624) ディレクトリ `lxd' をクリーンアップするふりをしています。

定期的にファイルを自動的に削除するcronジョブを設定する

(実は、tmpwatch/tmpreaper は cron ジョブで最もよく動作します。)

cron ジョブ タスク編集ウィンドウに入ります。

# crontab -e

定期的なタスクを追加します。

0 1 * * * /usr/sbin/tmpwatch 30d /var/log/

上記のコードは、tmpwatch を毎日午前 1 時に実行し、30 日以上経過したファイルを削除するように設定します。

コーンジョブについて知らない友人は、インターネットで初心者向けガイドを検索することができます。

tmpreaper をインストールすると、毎日の cron ジョブ (/etc/cron.daily/Tmpreaper) が自動的に作成されます。 /etc/timereaper.conf ファイルから設定を読み取って実行します。デフォルト設定では、7 日以上経過したファイルは削除されます。この設定を変更するには、TMPREAPER.conf ファイルを "TMPREAPER_TIME=7d" に変更します。

最後に
最後に、ファイルを削除するときは、データの損失を避けるためにパスを慎重に確認する必要があることに注意してください。

tmpwatch および tmpreaper のマニュアル ページ:

$ マンtmpwatch
$ 男 tmpreaper

Linux でジャンク ファイルをエレガントに削除する方法に関するこの記事はこれで終わりです。Linux ジャンク ファイルに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • スケジュールされた時間に古いジャンクファイルを自動的に削除する Linux 用の Autotrash ツール

<<:  MySQLでスケジュールされたタスクを設定する方法の分析

>>:  vue3 のさまざまな構文形式を比較したサンプルコード

推薦する

vue+rem カスタムカルーセル効果

vue+remを使用したカスタムカルーセルチャートの実装は参考までに。具体的な内容は以下のとおりです...

期間限定フラッシュセール機能を実装するJavaScript

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

Vue ページ内の公開マルチタイプ添付画像アップロード領域と適用可能な折りたたみパネル (サンプルコード)

フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

アイデアのパッケージ化とクラウドサービスへのアップロードにおけるプロジェクトプロセスの分析

1つ。まず、アイデアとしてパッケージ化する必要があります。私はSpringbootフレームワークプロ...

Node-Redを使用してMySQLデータベースに接続する方法

Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...

Windows Server 2008 R2 に MySQL 5.7.10 をインストールする手順

MSIインストールパッケージを使用してインストールするご使用のオペレーティング システムに応じて、対...

n 個のコンテナ要素による無限スクロールの実装コード

シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...

CSS の vertical-align プロパティとベースラインの問題に関する深い理解

vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...

Centos6.9 インストール Mysql5.7.18 ステップ記録

インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...

Vue el-date-picker 動的制限時間範囲ケースの詳細な説明

2つの状況がある1. 開始時間と終了時間が同じボックス内にあります(今月のみ限定) 2. 開始時間と...

6ull が Linux ドライバ モジュールをロードできない問題の解決方法

目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...