FTP命令方式上传文件

http://stackoverflow.com/questions/18749681/vsftpd-cannot-upload-files-to-the-server-error-553
https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-on-centos-6--2

今天在部署site过程中碰到FTP无法上传的问题,通常上传文件是通过FTP工具直接上传,比如FileZilla。
但是现在这台目标服务器(以DS命名,即destination server)不能直接访问,需要在另外一台中间Server(以MS命名,即middle server)上访问DS。

背景交待完毕,下面记录下具体的过程:

1.MS 上没有FTP Client,安装FTP Client:

yum install ftp

2.查看DS上vsftpd状态,如果没有安装,安装vsftpd

# 查看vsftpd是否运行
service vsftpd status

# 如果没有启动,启动vsftpd
service vsftpd start

# 或者是重启
service vsftpd restart

# 如果DS上没有vsftpd,安装vsftpd
yum install vsftpd

3.在MS上FTP连接DS,出现 530 permission denied

ftp 137.200.xxx.xxx
# 输入用户名root,输入密码
# 连接失败:530 permission denied
# 在DS上打开目录 /etc/vsftpd/, 修改ftpusers和user_list文件,允许root连接FTP
# 将两个文件中的root注释掉
cd /etc/vsftpd/

4.FTP连接DS成功,向DS传送文件,出现 553 Could not create file

ftp> put /var/www/html/app-prd.tar.bz2 
local: /var/www/html/app-prd.tar.bz2 remote: /var/www/html/app-prd.tar.bz2
227 Entering Passive Mode (137,200,127,177,194,116).
553 Could not create file.
# 查看/etc/vsftpd/vsftpd.conf文件,查询write_enable是否启用
write_enable=YES

# 参考了tripleee的回答(链接在下面),ftp连接成功后,执行ls命令,看到的是DS root用户的home目录。
# 所以猜测出现上面的问题是由于,DS root home目录下没有/var/www/html目录导致,创建这个目录,再执行上面的put,上传成功了
ftp> put /var/www/html/app-prd.tar.bz2 
local: /var/www/html/app-prd.tar.bz2 remote: /var/www/html/app-prd.tar.bz2
227 Entering Passive Mode (137,200,127,177,197,56).
150 Ok to send data.
226 Transfer complete.
1255747 bytes sent in 0.0284 secs (44222.67 Kbytes/sec)

# 如果不行,尝试重启下DS的vsftpd
service vsftpd restart

tripleee的回答


利用tar来压缩和解压

# 压缩
tar -jcv -f filename.tar.bz2 要被压缩的目录
# 解压
tar -jxv -f filename.tar.bz2 -C 欲解压的目录

查看系统版本:

lsb_release -a
FTP命令方式上传文件_第1张图片

你可能感兴趣的:(FTP命令方式上传文件)