删除7天以前的FTP数据的脚本

目前我正在使用以下简单的线路脚本将服务器目录备份到远程FTP位置

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

现在,我只需要从超过7天的远程FTP删除备份。 在服务器内的正常目录位置,我简单地用下面的脚本来完成

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

但是,运行相同的FTP不工作,有什么办法可以删除超过7天的FTP远程位置数据? 可能是通过lftp或任何其他命令

有一个名为curlftpfs的FUSE文件系统,它允许你将远程FTP站点挂载,就像它是一个普通的文件系统一样,这样你就可以运行find命令来删除超过7天的文件。 首先通过运行apt-get install curlftpfsyum install curlftpfs或您的发行版的等价物来yum install curlftpfs

一旦安装,你可以像这样安装远程ftp站点:

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

用户名和密码被您的实际用户名和密码取代。 现在只需cd到/ tmp / ftp_mount并运行find命令来删除旧文件。 完成后,从文件系统中取出并卸载:

 fusermount -u /tmp/ftp_mount 

由于curlftpfs是一个FUSE文件系统,所以你可以像任何用户那样做(你不需要root来使它工作)。

看起来,只用FTP访问就没有简单的方法来做你想做的事情。 以下是一些可能有用的想法:

  • 如果适用,按date组织/重命名您的目录。 所以,你会知道要删除的目录名称。
  • 保持本地机器上的相同目录/文件的精确副本。 在本地机器上应用查找,以获得要删除的文件列表,然后遍历所有文件通过FTP删除它们。
  • 迭代目录结构以查找修改的时间并决定是否删除此文件/文件夹。