我有一个备份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服务器,您需要先切换glob 。 mls命令应该告诉你文件名扩展是否工作。