ftp报错

1、报错:Could not parse response code

原因:ftp默认端口21,sftp默认端口22,未开启默认端口

2、Connnection confused

未开启21端口

2.1 解决方式

运行vsftpd服务

service vsftpd start

查看iptables设置

iptables -nL

将21端口插入到INPUT的ACCEPT中

iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT

查看插入结果

iptables -nL --line-numbers

搭建FTP服务

modprobe ip_conntrack_ftp

在这里插入图片描述

3、ftpClient.listFiles() 获取目录里的文件为空的解决

添加ftpClient.enterLocalPassiveMode();

在这里插入图片描述

4、写脚本将文件上传到指定目录

4.1 脚本内容

#!/bin/sh
PUTFILE=*.sh
ftp -v -n 192.168.*.*<<EOF
user ftpuser ftpPassword
binary
cd /home/kFtp
lcd /home/ftp
prompt
put $PUTFILE
bye
EOF
echo "commit to ftp successfully"

4.2 报错内容

/bin/sh^M: 坏的解释器: 没有那个文件或目录

4.3 原因

报错信息/bin/sh^M: 坏的解释器: 没有那个文件或目录通常是因为脚本文件在创建或编辑时使用了Windows风格的换行符(CRLF,即\r\n),而Unix或Linux系统期望的是Unix风格的换行符(LF,即\n)。这导致/bin/sh这一行被错误地解释,因为^M(\r)被视为命令的一部分,而不是换行符。

4.4 解决

使用sed命令来替换掉\r字符:

sed -i ‘s/\r$//’ your_script.sh

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值