我需要一个shell或Perl脚本,它将连接到FTP服务器并删除所有超过7天的文件。
欢呼声
答案 0 :(得分:4)
使用Net::FTP模块连接到FTP服务器,如CPAN文档中所述。要浏览网站列表,您可能需要结合 cwd / cdup 才能处理目录(除非所有文件都在根目录中)。
要获取文件的修改时间,请使用 mdtm(FILE)方法,只需确保通过调用
检查当前服务器是否支持此功能。if( $ftp->feature( 'MDTM' ) ) {
...check modification time for file...
}
如果没有,那么您可以尝试调用“目录”方法,该方法将以长格式获取列表,然后从单个文件列表中提取日期信息以便进行比较和删除。
要比较两个日期,请使用Date::Calc模块。 “ Delta_Days ”方法应该为您提供两个日期之间的天数;这可以很容易地用于上面指定的任何一种方法。
答案 1 :(得分:2)
在Perl中,您需要使用Net::FTP的ls,mdtm和delete命令。
答案 2 :(得分:1)
如果它是你正在使用的shell脚本,那么最好不要在crontab中运行脚本。
find /tmp -type f -mtime +7 -exec rm {} \;