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

推薦する

基本構造、ドキュメント タイプ、ヘッダー、本文などの一般的な HTML 要素の概要。

1. 基本構造:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBL...

MySQL でデータベースを作成した後、ユーザー 'root'@'%' によるデータベース 'xxx' へのアクセスが拒否される問題を解決する

序文最近、仕事で問題が発生しました。データベースを作成した後、データベースに接続するときにエラーが発...

JS で async await をエレガントに使用する方法

目次jQuery の $.ajax Webpack時代の始まり約束について深く考えるネストをなくすj...

Google ブラウザのラベルと入力間のスペースに関する小さな問題

最初にコード、次にテキストコードをコピーコードは次のとおりです。 <!DOCTYPE html...

Nginx の書き換え正規マッチング書き換え方法の例

Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...

CSSのborder-radiusプロパティを使用して円弧を設定します

現象: divを一定の振幅で円、楕円などに変更する方法: CSSのborder-radiusプロパテ...

Vueはアップロードコンポーネントを実装します

目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...

CentOS6 アップグレード glibc 操作手順

目次背景glibc 2.14をコンパイルするソフトリンクを変更するやっと背景テスト環境には Cent...

MySQL スケジュールタスクの実装と使用例

この記事では、例を使用して、MySQL スケジュール タスクの実装と使用方法を説明します。ご参考まで...

Mac で MySQL 8.0.22 のパスワードを取得する方法

Mac 最新バージョンの MySQL 8.0.22 パスワード回復問題の説明:昨日、突然、Macで最...

効率的なMySQLページングの詳細な説明

序文通常、大量のデータを扱う MySQL クエリには「ページング」戦略が採用されます。ただし、ページ...

Pure CSS と Flutter はそれぞれブリージング ライト効果を実現します (サンプル コード)

前回、非常に熱心なファンから、月を呼吸する光の効果にできるかどうか尋ねられました。月の大きさの写真が...

MySQLの大文字と小文字の区別によって発生する問題の分析

MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...

Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション

1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...

MySQL データ型の最適化の原則

MySQL は多くのデータ型をサポートしており、高パフォーマンスを得るには適切なデータ型を選択するこ...