unix下shell脚中ftp问题

我写了一个shell脚本,目的是去远程计算机中,显示所在目录中3天前的文件,远程计算机是windows系统。
其中关键代码如下:

ftp -n 12.12.12.12<< EOF
user use pwd
bin
prompt

forfiles /d -3
bye
EOF

现在的问题是:forfiles /d -3这个命令会报错:?Invalid command
这个命令我在DOS中是可以执行的,然后我将这个命令替换成了shell中的find命令,报同样的错
我想请问下:在ftp模式下,如何实现显示远程计算机目录中3天前的文件并删除

不管是shell命令还是dos命令,在ftp里都是不管用的,在ftp下能执行的命令都是ftp内嵌的,如ls, 在shell里你的ls可以列出目录下的文件列表,这个ls是一个可执行文件,一般是在/usr/bin下(也可能是其他目录)

ftp里也可以ls,但是ftp里的ls不是调用的shell里的那个ls,这是ftp里内嵌的,其实只是ftp中的一个函数


不同的ftp内置的命令可能有所差别,比如有的ftp有的支持dir命令,有的就不支持

具体支持哪些内命令一般通过help命令就能查到,如我的电脑上的:


至于你想通过ftp来实现删除文件的话可以通过telnet或者ssh等来实现,

在脚本里通过telnet或者ssh或得要删除的文件的列表,然后在ftp命令下删除

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-01
linux和dos不同,命令也不同。
另外,不能在ftp中直接使用linux的命令。
真想动态用的话,最好用cat或者echo和${}环境变量拼出来ftp脚本,然后执行。另外,linux下的ftp貌似不支持列举多少时间前的,最好列举出来后在本地筛选。
举一段例子:

cat >ftp.sh <<EOF
ftp -n<<!
open 8.8.8.8
user username passwd
prompt off
binary
cd 目的目录
ls -l

EOF

sh ftp.sh > filelist
cat filelist|....对比时间的脚本....本回答被提问者采纳
第2个回答  2012-08-01
FTP是用于上传和下载文件用的文件传输协议。 在ftp里是没有forfiles 这个命令的。如果想执行这个命令得到结果只能是打开远程windows主机的telnet终端,登录到dos环境中执行
第3个回答  2012-08-01
dos 和 shell 是两码事
dos命令在shell中不一定能够执行

shell脚本中取ftp远程服务器文件的问题
ftp -i -n <<! ...一般如果在Windows下编辑的文件,传到linux环境下,文件内容里会因为回车换行表示方式不一样,会出现^M符号,可以在传到linux环境后,可以使用dos2unix等工具转换(该工具因linux版本不同可能并未默认安装)。另外,要注意所传文件是否是二进制还是一般文本文件,如果是二进制文件,...

shell中ftp -in
-n禁止第一次连接的时候自动登陆,即不使用.netrc文件;-i 在多个文件传输期间关闭交互提示,相当于FTP中prompt命令关闭;整个FTP过程中所有的命令都从文件$FTPFILE中获取,并将过程追加记录到$LOGFILE中

用shell脚本调用ftp命令,mget怎么取得动态文件?
\/usr\/bin\/shTZ=TZ+96day1=`date +%Y%m%d`TZ=TZ+72day2=`date +%Y%m%d`TZ=TZ+48day3=`date +%Y%m%d`TZ=TZ+24day4=`date +%Y%m%d`TZ=TZday5=`date +%Y%m%d`SERVER=serverUSERNAME=usernamePASSWORD=passwordftp -n $SERVER <<EOFuser $USERNAME $PASSWORDcd remote_pathlcd local_pa...

aix机器把ftp命令放到shell 里执行,lcd的时候提示文件夹不存在_百度...
ftp shell lcd不起作用解决方案

用serv-u做了个架设 但是ftp却打不开 老是提示应用程序错误
(1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。(2)有些硬件配置过低,尤其是运行大型游戏时,不能正常运行。必要时升级电脑显卡、内存条等硬件。(硬件上一般不会出现该问题)【6】软件引起的:(1)安装的软件与系统或其它软件发生冲突,盗版或带病毒的...

shell语句中如何在for当中使用ftp命令?
ftp a.b.c.d <<EOF binary get urfile close bye EOF

...Anonymous(FTP匿名登录,Cron任务反弹shell,SUID提权:env)_百度知 ...
shell 编辑clean.sh,payload如下 本地开启监听,拿到初始shell。在user目录拿到user.txt。问题5:user.txt 答案:90d6f992585815ff991e68748c414740 提权 把linpeas传到靶机,枚举靶机的提权漏洞,发现一个可以提权的SUID:env 利用env提权,拿到root.txt。问题6:root.txt 答案:4d930091c31a622a7ed10f...

怎样解决FTP错误?
ftp使用的内部命令如下(中括号表示可选项):1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如: !ls*.zip.2.$ macro-ame[args]:执行宏定义macro-name.3.account[password]:提供登录远程系统成功后访问系统资源所需的补 充口令。4.append local-file[remote-file]:将本地文件追加...

linuxshell怎么实现ftp自动上传下载文件?
实现Linux Shell 中FTP的自动上传下载文件,可以通过编写脚本并结合cron任务调度系统。以下是一个简单的脚本示例,用于自动将单个文件上传到FTP服务器。请将以下脚本保存为文件,并通过crontab设置定时任务以实现自动化。```bash !\/bin\/bash FTP服务器信息 FTP_HOST="192.168.1.171"FTP_USER="guest"FTP...

shell求助,怎么删除FTP里的文件,而不删除原计算机的文件
要看FTP的版本,由于现在有很多FTP的版本,有些可能不支持这个命令,你可以在ftp里输入help显示支持的命令,如果有delete命令就可以,另外还有mdelete可以一次删除多个文件

相似回答