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

推薦する

Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...

CSS3 で複数のカスタムフォントを導入する

今日、HTML に問題を発見しました。多くのデフォルト フォントが提供されていますが、「Bold」、...

シンプルなCSSアニメーションのtransition属性の詳しい説明

1. 遷移属性の理解1. transition 属性は、次の 4 つの遷移プロパティを設定するために...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

Linux コマンドを素早く習得する 4 つの方法

Linux マスターになりたいなら、いくつかの Linux コマンドを習得することが不可欠です。 L...

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する複数の方法

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...

仮想マシンに Linux rhel7.3 オペレーティング システムをインストールする (具体的な手順)

仮想化ソフトウェアをインストールする仮想マシンにオペレーティング システムをインストールする前に、ホ...

Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

目次1. バックグラウンドで実行されるジョブ2. 信号を使用してプロセスを制御する基本的なプロセス管...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順

目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...

Windows プラットフォームでの MySQL のインストールと設定方法と注意事項

2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...

MySQLのカバーインデックスに関する知識ポイントのまとめ

インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

JavaScript で判決文をエレガントに記述する例

目次序文1. モナドの判断1.1 例1.2 オブジェクトに入れる1.3 マップに載せる2. 複数の判...