用于删除ftp服务器上x天以前的文件的shell脚本
问题描述:
有一个连接文件并将文件放入ftp服务器的shell脚本。 现在试图从ftp服务器上的相同目录中删除2天以前的旧文件。 试图使用find命令,但获取?invalid命令 找到./*.txt -mtime +2 -exec rm {} \;用于删除ftp服务器上x天以前的文件的shell脚本
......
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
!
......
我还能试试什么?需要帮助。
答
我遇到了同样的错误,在使用ftp时,某些linux版本无法识别 字符“*”,将其替换为特定的一个。
'find'命令是一个shell脚本命令,而不是'ftp'命令。标准的'ftp'客户端仅支持非常狭窄的命令选择。在'ftp'脚本中没有办法编写脚本。也许看一下像'lftp'或'ncftp'这样功能更强大的客户端,或者编写一个包装器来下载所有文件的列表,在本地处理它,并生成一个DELE命令列表以提交回服务器。 – tripleee
看看你是否可以通过'ssh'而不是'ftp'访问。这会给你一个shell,你可以在其中执行你的'find'命令。 –