На моих серверах один из скриптов, который я использую, постоянно создает пустые файлы в корневом каталоге, и я не замечал этого уже более 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.