NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
JA

Linux コマンドとシェル スキル

find: すべてを実行する Linux 検索

find は運用サーバー上で最も危険なコマンドであり、だからこそ習得する価値があります。これは 1 つの式で列挙、フィルタリング、および実行を行い、古典的な「/var here be Dragons」インシデントはすべて、誰かがスキップしたプレビューにまで遡ります。習慣は機械的です。最初に -print または -ls を使用してウォークし、-exec ... + でバッチ処理し、-print0 を介して xargs -0 にパイプし、-delete を最初のドラフトではなく 2 回目の決定として扱います。

要点

  1. 名前だけではなくメタデータでフィルターします。 -type f、-mtime +30、-size +100M、および -perm -o+w は、命名規則と経過時間レポートの両方で見逃される奇妙なファイルを見つけます。
  2. すべての破壊的なクエリをプレビューします。最初に /var/www/uploads -name 'core.*' -ls を検索し、実際にリストを読んだ後でのみ -ls を -delete に交換します。プレビューは安全性のチェックであり、提案ではありません。
  3. -exec cmd {} + ファイルをいくつかの呼び出しにバッチ処理し、\; を打ち負かします。大きな木に形成されます。同じ構文により、argument-list-too-long エラーを発生させることなく、「1 つのプロセスで一致するすべてのファイルを rm する」ことができます。
  4. デフォルトのヌルセーフ出力: find 。 -name '*.old' -print0 | xargs -0 rm -v; xargs へのプレーン パイプは、ファイル名にスペースが含まれる日のデータ損失パターンとして知られています。
  5. -xdev と -max Depth はウォークを正直に保ちます。これらは find がマウントやスナップショットを追跡するのを停止し、ランタイムと「このディレクトリ」に関するユーザーの想定の両方を救います。
  6. 時間枠は、正確に尋ねれば正確です。過去 24 時間の場合は -mmin -1440、日付以降の場合は -newermt '2026-01-01'、チケットで引用する前に、-xtime が「完全 24 時間前」を意味することを覚えておいてください。
  7. 意図的に剪定する: を見つけます。 -path '*/node_modules' -prune -o -name '*.js' -print は、サイズと時間の点でツリーの残りの部分を上回る 1 つのディレクトリをスキップします。
  8. 読み取り不能なディレクトリではゼロ以外の終了が予想されます。 「許可が拒否されました」のような stderr 行はデータではなくスキップされたファイルであるため、スクリプトは find の終了ステータスを許容するか、クリーン ウォークを想定する代わりに明示的にチェックします。

現場ノート

私たちの最悪の find -delete の話は、2 番目のシェルが find の上流で 3 つの単語に拡張された、引用符で囲まれていない -name パターンから始まりました。ルールは単純です。 -print first、常に引用符、および -delete はコマンドの初回実行時には決して使用されません。

よくある質問

ファイルは見つかりましたが、ダウンストリーム コマンドでは何も実行されませんでした。なぜ?

ほとんどの場合、引用符または空の入力が行われます。パターンは、find がそれを参照する前にシェルによって展開されているか、xargs が何も受け取っていません。パターンを引用符で囲み、毎回 -print0 と xargs -0 を組み合わせます。

- 検索後に削除または rm しますか?

-delete は直接的、高速かつ容赦のないものです。同じ式内で -exec と混合することはできません。まず一致する -print を実行し、それを読み取ります。それが規律全体です。

システム ディレクトリで印刷許可エラーが見つかるのはなぜですか?

コンポーネントはエラーを標準エラー出力に読み取って、find をゼロ以外で終了させることができません。インタラクティブな快適さのために 2>/dev/null でフィルタリングし、これらのエラーをファイルの欠如として解釈しないでください。

-mtime と -ctime の違いは何ですか?

-mtime はコンテンツの変更、-ctime はメタデータの変更 (権限、名前変更、ハードリンク数)。 chown または move は mtime に触れずに ctime を変更します。これにより、四半期に 1 つのレポートが正確に混乱します。

linux コマンドとシェル スキル に対するKinetikatechの支援

私たちが毎日行っていること:管理者がサーバーを操作するかサーバーと戦うかを決定するコマンドとスクリプトの習慣。すべての基本インストールに存在するツールを使用して、テキストとプロセスを検索、変換、転送、監視します。 私たちのLinuxサーバーセキュリティとサーバー管理サービスは、評価、実装、24時間体制の監視、30分以内の緊急対応をエンドツーエンドでカバーします。

エンジニアに相談する

サーバーの障害?サイトの改ざん?表示が遅い?

重大な障害には30分以内に対応 — 24時間365日体制です。

緊急サポートを依頼する support@kinetikatech.com