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