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

推薦する

MySQL の一時テーブルと派生テーブルについての簡単な説明

派生テーブルについてメイン クエリに派生テーブルが含まれている場合、または SELECT ステートメ...

VMware12 インストール centOS8 構成グラフィック チュートリアルの詳細説明 (vm 仮想マシン インストール centos8 チュートリアル)

数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...

DockerコンテナでArthasを使用するための詳細な手順

Arthas はあなたのために何ができるでしょうか? Arthas 、開発者に深く愛されている Al...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)

MySQLサービス8.0.14のインストール(一般)の参考までに、具体的な内容は次のとおりです。イ...

ウォーターフォールフローレイアウト(無限読み込み)を実現する js

この記事の例では、ウォーターフォールフローレイアウトを実装するためのjsの具体的なコードを参考までに...

Linux サーバーは最大いくつのポートを開くことができますか?

目次ポート関連の概念:ポートとサービスの関係1: nmapツールが開いているポートを検出する2: n...

HTML 5 ワーキングドラフトの謎を解く

World Wide Web Consortium (W3C) は、HTML 5 仕様のドラフトをリ...

Linux ブートシステム方式の分析

この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

Gokudōゲームにおけるフロントエンド知識のまとめ

背景日本語を学び始めた当初は、日本語の50音を覚えるのは簡単ではなく、特にカタカナを覚えるのは困難で...

Vue のミックスインの使用方法の詳細な説明

目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...

Linux に setup.py プログラムをインストールする方法

まず次のコマンドを実行します: [root@mini61 setuptools-8.2.1]# py...

MySQL の大きなテーブルで大量のデータを一括削除する方法

質問はhttps://www.zhihu.com/question/440066129/answer...

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...