用于删除ftp服务器上x天以上文件的Shell脚本

时间:2016-02-19 20:16:11

标签: linux unix sh

有一个shell脚本连接并将文件放到ftp服务器上。 现在尝试从ftp服务器上的同一目录中删除2天的旧文件。 试图使用find命令,但得到?无效命令 find ./*.txt -mtime +2 -exec rm {} \;

......
ftp -nv <<! >> $FTP_LOG 2>> $FTP_LOG

open xxx
user userid pwd

lcd $FILES_DIR

cd /yyy

put $File1 $File1
put $File2 $File2

find ./*.txt -mtime +2 -exec rm {} \;

quit
!
......

我还能尝试什么?需要帮助。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,当使用ftp时,有些linux版本无法识别 字符“*”,将其替换为特定字符。

答案 1 :(得分:0)

FTP不会为您提供外壳程序,如此处所示: https://serverfault.com/questions/28568/using-the-find-command-on-the-ftp-server/437649

因此,您将必须使用grep在客户端上搜索文本文件。

如果您有权访问ssh,则find命令将在目录层次结构中搜索文件。您传递的第一个参数应该是目录。

您可以使用-name选项搜索模式,例如带有txt扩展名的文件:

find ./ -name "*.txt" -mtime +2 -exec rm {} \;

在手册页中:

不要忘记将模式用引号引起来,以防止其被外壳扩展。