最近需要用到文件的上传和下载,查看我们使用的系统,,发现有一个进程为t_ftpd,怀疑其为一个ftp的守护进程,于是想要用ftp的方式实现。
在windows上使用bat脚本的方式实现:
首先写一个bat脚本:
download.bat
@echo off ftp -s:E:\Sylixos\SylixOS_Qt\build-TCWareWigget-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\ftp\ftp.txt
这样就会调用ftp.txt文件
ftp.txt
open 10.1.26.11
root
root
ascii
prompt off
lcd E:\Sylixos\SylixOS_Qt\build-TCWareWigget-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\download
cd /apps/goahead
get auth.txt
close
bye
quit
这样就实现了文件的下载。
这里详细说明一下
@echo off 关闭回显ftp -s:$PATH ftp命令
open 10.1.26.11 建立指定ftp服务器连接,可指定连接端口
binary 设置文件传输模式为binary,缺省为ascii。binary模式不会对数据进行任何处理,ascii模式会将回车换行
转换为本机的回车字符。关于binary和ascii传输模
prompt off 下载 prompt on 上传lcd local-dir:将本地工作目录切换至local-dir(注意windows路径和linux路径的区别)
cd remote-dir:进入远程主机目录remote-dir
mget *.gz 批量下载gz结尾文件 mput *.gz 批量上传gz结尾文件 我这里批量测试始终失败,不知什么原因,最后选择单个文件下载上传
close 中断与远程服务器的ftp会话
bye 退出ftp会话过程
quit 退出
同理类似得到linux下的shell脚本:
#!/bin/bash ftp -niv <<- EOF open 10.1.26.11 user root root ascii cd /apps/goahead lcd ./ prompt off get auth.txt close bye EOF
至此,通过windows脚本,linux脚本从ftp服务器上传和下载文件完成,通过测试。windows、linux通过ftp从ftp服务器上传和下载