如何用bash删除ftp中的旧文件

我有一个备份FTP服务器,我有一个CRON bash发送所有备份在这里。

现在我必须手动删除所有旧文件,但我想用CRON bash自动执行此过程

远程FTP没有文件的date(我不知道为什么),但是备份是按date命名的(%Y-%m-%d-%H-%M-%S)。

我想列出目录中的所有文件,按名称sorting,删除索引> X的所有文件,但我不知道该怎么做

我目前的代码是:

ftp -inv $ftphost << EOF user $ftpuser $ftppass put $savepath.bz2 mysql/"$dbname"/"$datum".sql.bz2 bye EOF 

这个解决scheme当然不是防水的,但是如果你的备份工作每天都在运行,并且你想保留一个月的备份,那么你可以删除一个月前的文件,例如:

 old=$(date -d 'now -1 month' +'%Y-%m-%d') 

然后在FTP部分

 mdelete mysql/"$dbname"/"$old"*.sql.bz2 

根据您的FTP服务器,您需要先切换globmls命令应该告诉你文件名扩展是否工作。