私のサーバーでは、使用しているスクリプトの 1 つがルートに空のファイルを作成し続けていますが、6 か月以上も気付かれず、現在、合計 500,000 を超えるファイルが作成されています。
ファイルが多すぎて FTP でしかアクセスできないため、コントロール パネルからそのディレクトリにアクセスできません。FTP を使用しても、FTP はファイルを 8000 ずつ切り捨てます。そのため、8000 ずつ削除し続けなければなりません。
ホストに削除を依頼しようとしましたが、責任の問題なのでできないと言われました。
そこで知りたいのは、FTP 経由で 500,000 個のファイルをすべて削除するにはどうしたらよいかということです。共有ホスティングなので、SSH アクセスもできません。ホスティング プロバイダーによると、SSH アクセスをリクエストすることはできるが、確認が必要で、オフィスは来週まで閉まっているとのことです。そのため、今のところは FTP しか使えません。
FTP 経由で大量のファイルを削除する方法を教えてください。
念のため、SSH アクセスを取得できる場合は、SSH 経由でファイルを効率的に削除する方法を教えてください。
ファイル名は次のようになります
- 閉じるcp.139619
- 閉じるcp.139619.1
- 閉じるcp.139620
- 閉じるcp.139620.1
答え1
としてサムディレクトリからファイルを削除する PHP または Perl ファイルを Web スペースに配置することを指摘しました。
スクリプトがあなた以外の誰にも簡単に見つからないようにし、スクリプト内の値が POST または GET によって上書きされないようにします。
答え2
これらのファイルを削除するにはおそらくかなり長い時間がかかるため、その間は I/O が大量に発生することが予想されます。
この記事には、大量のファイルを削除する方法についての役立つアドバイスがたくさんあります。数百万のファイルがあるディレクトリのrm
あなたの場合は数百万ではないかもしれませんが、かなり遅くなるでしょう。
答え3
最終的に、FTP コマンドラインで取得しました。ウィンドウから「cmd」を使用しました。
まずプロンプトをオフにする必要があります
prompt
次のコマンドで削除します
mdelete closecp.*
答え4
ボックスに ssh できる場合は、次のように実行できます。
find /path/to/files -maxdepth 1 -name "closecp.*" -delete
これにより、ディレクトリ /path/to/file 内の (状況に合わせて変更してください) 形式の名前が "closecp.*" (メモしたとおり) のすべてのファイルが検索されます。"-maxdepth 1" オプションにより、"find" コマンドはサブディレクトリを検索せず、/path/to/file のみを検索します。