第四炮 两台linux电脑之间传输文件(二)
在之前的实验中,让龙芯小本能够和虚拟机传输文件,首先想到的是ftp服务,安装配置之后龙芯小本时钟无法连接到成功。分享一下用ftp传输文件的实验经历。
首先是安装ftp服务器啦,这个比较简单,过程一般是这样的;
1.-----> sudo apt-get install vsftpd
2.-----> sudo vi /etc/vsftpd.conf 编辑配置文件
3.-----> sudo /etc/init.d/vsftpd restart 重启ftp服务
4.-----> netstat -tl 可以查看是否启动
root@liklon-laptop:/# netstat -tl 激活Internet连接 (仅服务器) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN root@liklon-laptop:/#
在一切都准备好了之后,开始用龙芯小本去链接:
ftp 192.168.1.103
接着就是需要登陆啦登陆名直接用ftp
anonymous_enable=YES no_anon_password=YES local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES ftp_username=ftp anon_mkdir_write_enable=YES dirmessage_enable=YES local_root=/home/ftp/ anon_root=/home/ftp/ xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES
上面是配置文件里面的一部分。本地用户登陆后是将/home/ftp/作为根目录。在登陆后龙芯小本那里报错如下:
500 OOPS: vsftpd: refusing to run with writable anonymous root
在建立ftp目录时
sudo mkdir ftp -m 777
这样就出问题了,因为vsftpd出于安全考虑对 /home/ftp是不允许没有限制的,这导致了上述错误的发生。
最后将权限修改 :
cd /home/
chmod 755 ftp/
修改了之后再链接就可以成功了。
然后在ftp文件里新建了一个liklon目录,并创建了eepw.c...
下面是eepw.c的内容(龙芯小本获取文件后,修改,再上传来的)
ong:/# ftp 192.168.1.103 Connected to 192.168.1.103. 220 (vsFTPd 2.2.2) Name (192.168.1.103:root): ftp 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Aug 08 09:15 liklon 226 Directory send OK. ftp> cd liklon 250 Directory successfully changed. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 0 Aug 08 09:15 eepw.c 226 Directory send OK. ftp> get eepw.c /liklon-arm/ local: /liklon-arm/ remote: eepw.c 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for eepw.c (0 bytes). local: /liklon-arm/: Is a directory 226 Transfer complete. 225 No transfer to ABOR. ftp> get eepw.c local: eepw.c remote: eepw.c 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for eepw.c (0 bytes). 226 Transfer complete. ftp> bye 221 Goodbye.
上面内容是,龙芯小本将文件获取后,将操作指令全部复制下来粘贴到文件里后,再上传到虚拟机的目录上。
在上传的过程中也遇到了一个问题:vsftp上传文件出现553 Could not create file
我是上传在/home/ftp/liklon/目录下,这个目录的权限是777
创建这个目录修改权限后再重新启动ftp服务器就可以了。
楼上内容的补充:
Linux ftp命令的一般格式如下:
$ ftp 主机名/IP
其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令:
$ ftp
ftp >
此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。
不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。
如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。
如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。
一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。
最常用的命令有:
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close 终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
断开与远程机的连接并退出ftp
? 显示本地帮助信息
! 转到Shell中
下面简单将ftp常用命令作一简介。
◆启动ftp会话
open命令用于打开一个与远程主机的会话。该命令的一般格式是:
◆open 主机名/IP
如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。
◆终止ftp会话
close、disconnect、和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。
◆改变目录
“cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。
◆远程目录列表
ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:
ls [目录] [本地文件]
如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。
◆从远程系统获取文件
get和mget命令用于从远程机上获取文件。get命令的一般格式为:
get 文件名
您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。
mget命令一次获取多个远程文件。mget命令的一般格式为:
mget 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。
◆向远程系统发送文件
put和mput命令用于向远程机发送文件。Put命令的一般格式为:
put 文件名
mput命令一次发送多个本地文件,mput命令的一般格式为:
mput 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。
◆改变文件传输模式
默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。
◆检查传输状态
传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。
◆ftp中的本地命令
当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |