特定の日付と拡張子を持つファイルを削除する方法

特定の日付と拡張子を持つファイルを削除する方法

短く簡単に:私のホスティング購読の1つがハッキングされました。

次のコマンドを実行しました。 find path-to-folder/ -mtime -7 -name "*.php" –print このコマンドにより、1月30日に追加された約11ページのマルウェアが生成されました。このアイテムを毎日削除するのではなく、スクリプトを生成したりコマンドを生成したりして、削除操作を一度だけ実行するようにしてください。

次のいずれかの操作をしたいと思います。

  1. リンクされた.txtファイルに入力したパスに基づいてファイルを削除するスクリプトを作成します。または
  2. 特定の日付範囲に基づいて特定のフォルダから「*.php」という名前のすべてのファイルを削除するコマンドは1つですか?上記のコマンドを少し変更するだけです。できれば? ?

答え1

  1. Poisson Aeroheadの答えは基本的に良いです。わずかに変更する場合は、ファイル名の区切り文字として NULL を使用することをお勧めします。

  2. 1つのコマンドでこれを行うには、単に-printを次のように変更するだけです。-削除。 -deleteスイッチは最後のスイッチでなければなりません。それ以外の場合は、残りのスイッチについて確認する前にファイルが削除されます。

    フォルダパスの検索/ -mtime -7 -name "*.php" – 削除

答え2

また、短くて甘いです。cat list | xargs rm

これは、すべての悪意のある.phpファイルを含む「list」というファイルがあり、.phpファイルを含むディレクトリにあると仮定します(明確に説明すると、すでに理解しているはずです)。


ファイル名に改行文字が含まれている場合、実行するのは危険です。、特に悪意のある敵によって構築されたことを既に知っているので、さらにそうです。テキストファイルにファイル名のリストがある場合は、リストを事前に確認して、アーカイブしたいファイルを削除する行がないことを確認できます。

また、攻撃者がこのホストに悪意のあるPHPスクリプトを取得することに成功した場合、これが最大の問題ではないかもしれません。。私はあなたが尋ねる質問に答えるだけです。 @soubunmeiは私よりもfindコマンドをよく知っているので、より良い答えを与えましたが、どちらの回答も安全を保証しません。。明確ではなかったらすみません。私の不注意な言語を指摘してくれた@soubunmeiと@MichaelHomerに感謝します。悪意のある行為者がホストから高い権限を得た可能性があると思われる場合は、サイバーセキュリティの専門家に連絡する必要があります。


私は個人的にこれを行うための良い「延長と日付」ベースの方法があると思います。要求されたように、一部の人はこの方法がよりエレガントであると思うかもしれませんが、すでにリストがあるので使用しないでください。

私は次の行を含む「list」というファイルでこれをテストしました。

file1
file2

これらのファイルは私のデスクトップにあります。期待どおりに動作します。私強くまず、小さなステップでテストしてパフォーマンスを確認し、ディレクトリをバックアップすることをお勧めします。今後多数のファイルが削除されます。ハードドライブのスペースはプログラマーの時間よりはるかに安いです!

関連情報