Назад | Перейти на главную страницу

Скрипт для удаления данных FTP старше 7 дней

В настоящее время я использую следующий простой строчный скрипт для резервного копирования каталога сервера на удаленный FTP-сервер.

# Take backup to remote location
ncftpput -z -R -uusername -ppassword ftp.example.org /destination/directory /source/directory

Теперь мне просто нужно удалить резервную копию с удаленного FTP, которая старше 7 дней. В обычном месте каталога на сервере я просто делаю это с помощью следующего простого скрипта

# Delete backups older than 7 days
find /backup -name '*' -type d -mtime +6 -exec rm -rfv "{}" \;

Но если то же самое не работает на FTP, есть ли способ удалить данные удаленного местоположения FTP старше 7 дней? может быть через lftp или любую другую команду

Существует файловая система FUSE под названием curlftpfs, которая позволит вам смонтировать удаленный FTP-сайт, как если бы это была обычная файловая система, что позволяет вам запускать команду find для удаления файлов старше 7 дней. Сначала установите пакет, запустив apt-get install curlftpfs, yum install curlftpfsили эквивалент для вашего дистрибутива.

После установки вы можете смонтировать удаленный ftp-сайт следующим образом:

mkdir /tmp/ftp_mount
curlftpfs -o user=username:password ftp.example.org /tmp/ftp_mount

где имя пользователя и пароль заменяются вашим фактическим именем пользователя и паролем. Теперь просто перейдите в каталог / tmp / ftp_mount и выполните команду find, чтобы удалить старые файлы. Когда вы закончите, выйдите из файловой системы и размонтируйте ее с помощью:

fusermount -u /tmp/ftp_mount

Поскольку curlftpfs является файловой системой FUSE, вы можете сделать это как любой пользователь (для работы вам не нужен root).

Кажется, что нет простого способа делать то, что вы хотите, используя только FTP-доступ. Вот несколько идей, которые могут быть полезны:

  • Организуйте / переименуйте ваши каталоги по дате, если применимо. Итак, вы будете знать имя каталога, который нужно удалить.
  • Храните точные копии тех же каталогов / файлов на вашем локальном компьютере. Примените поиск на локальном компьютере, чтобы получить список файлов для удаления, а затем переберите все файлы, чтобы удалить их через FTP.
  • Просмотрите структуру каталогов, чтобы найти время изменения и решить, следует ли удалить этот файл / папку или нет.