Как удалить большие файлы через ftp или ssh?

Как удалить большие файлы через ftp или ssh?

На моих серверах один из скриптов, который я использую, постоянно создает пустые файлы в корневом каталоге, и я не замечал этого уже более 6 месяцев, а сейчас общее количество созданных файлов превышает 500 000.

Я не могу получить доступ к этому каталогу через панель управления, потому что там было слишком много файлов, и я могу получить доступ только через ftp. Даже с ftp, ftp обрезал файлы по 8000 каждый. Поэтому мне приходится продолжать удалять по 8000 каждый.

Я пытался попросить своего хостера удалить его, но они сказали, что не могут этого сделать, поскольку это вопрос ответственности.

Так что я хочу узнать, как мне удалить все эти 500 000 файлов через ftp? Поскольку это общий хостинг, у меня также нет доступа по SSH. Хостинг-провайдер говорит, что я могу запросить доступ по SSH, но мне нужно его проверить, а их офис закрыт до следующей недели. Так что пока я застрял с ftp.

Пожалуйста, дайте мне знать, как я могу удалить большие файлы через FTP?

И если я смогу получить доступ по SSH, пожалуйста, дайте мне знать, как мне удалить файлы через SSH эффективными способами?

Имя файла такое

  • closecp.139619
  • closecp.139619.1
  • closecp.139620
  • closecp.139620.1

решение1

КакСэмуказал, что я бы разместил файл PHP или Perl на вашем веб-пространстве, который удалит файлы из каталога.

Убедитесь, что скрипт не может быть легко найден никем, кроме вас, и убедитесь, что значения в нем не могут быть перезаписаны с помощью POST или GET.

решение2

Вероятно, удаление этих файлов займет много времени, учитывая высокую нагрузку на ввод-вывод в это время.

В этой статье есть много полезных советов о том, как удалить очень много файлов.rm-в-каталоге-с-миллионами-файлов

У вас, возможно, не миллионы, но процесс будет значительно медленнее.

решение3

Наконец, я добился этого с помощью командных строк ftp. Я использовал "cmd" из окна.

Сначала мне нужно отключить подсказку

prompt

Затем удалите с помощью следующей команды

mdelete closecp.*

решение4

Если вы можете подключиться к компьютеру по ssh, вы можете выполнить что-то вроде:

find /path/to/files -maxdepth 1 -name "closecp.*" -delete

Это позволит найти все файлы с именами в форме "closecp.*" (как вы отметили) в каталоге /path/to/file (измените это в соответствии с вашей ситуацией). Параметр "-maxdepth 1" не позволит команде "find" просматривать подкаталоги и будет искать только в /path/to/file.

Связанный контент