如何登录FTP站点并删除超过7天的文件?

时间:2009-03-17 04:27:19

标签: perl ftp

我需要一个shell或Perl脚本,它将连接到FTP服务器并删除所有超过7天的文件。

欢呼声

3 个答案:

答案 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 {} \;