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 のさまざまな構文形式を比較したサンプルコード

推薦する

ファイル操作のためのLinuxシステムコール

目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...

HTML で余分なテキストを省略記号に変換する方法

HTML で余分なテキストを省略記号として表示したい場合は、いくつかの方法があります。 1行テキスト...

MySQL で複数の主キーが定義されているエラーの解決方法

主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

スライダー検証コードを実装するJavaScript

この記事では、スライダー検証コードを実装するためのJavaScriptの具体的なコードを参考までに共...

MySQL を使用して Excel でデータ生成を完了する方法

Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...

Linux のスクリーンコマンドとその使い方

画面紹介Screen は、コマンドライン端末切り替え用に GNU プロジェクトによって開発されたフリ...

Vue で lodop 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...

JavaScript のカンマ式が含まれている場合について

JavaScript の if ステートメントで英語のカンマ「,」が表示されることがあります。これは...

Hyper-V なしで Windows 10 を動作させるソリューション

Windows10 Home Edition でHyper-vを有効にする方法をまだ探していますか?...

Linux システムコマンドのメモ

この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...

MySQL で削除されたレコードが有効にならない理由のトラブルシューティング

オンライン MySQL トランザクションの問題の記録先週の金曜日、大きなテーブルを削除する操作を実行...

MySQL が重複データを挿入するのを防ぐ 3 つの方法

新しいテーブルを作成する テーブル「人」を作成します( `id` int NOT NULL COMM...

Node.js でのブレークポイント再開の実装

序文通常のビジネスニーズ: 写真、Excel などをアップロードします。結局のところ、数 MB のサ...