linux几种文件传输方式(同主机、服务器之间)

本文仅作日常记录:
1. FTP : FTP是文件服务器,可实现文件的上传下载,存储等功能。
2. scp: scp能够将不同主机的文件进行相互传输,使用简单方便。
3. rz : 用于linux与windows之间的文件上传
4. sz :用于linux与windows之间的文件下载
5. rsync : rsync是文件同步工具,结合inotify可以实现文件的同步,备份功能。

*FTP常见用法

1、查看ftp服务的状态
命令:service vsftpd status
PS:提示vsftpd: command not found,修改PATH的环境变量就可以了 
2、启动ftp
命令:service vsftpd start
3、查看ftp进程
命令:ps -ef|grep -i ftp
命令:netstat -an | grep 21

**FTP连接后的常见用法**
1、连接FTP    
命令:ftp ip地址/主机名
输入正确的用户名和密码,验证通过就可以连接到这个指定远程主机了
# ftp 192.168.1.1
2、在远程主机查看文件等操作
即你连接的远程主机上操作,方法和平常一模一样,如
ftp> ls 
ftp>pwd

3、更改本地电脑的目录
ftp>lcd
ftp>lcd ..

4、下载文件
ftp> get test.txt
ftp> mget *.txt 
PS:
a)下载到了本地主机的当前目录下。比如,在/opt/ipnet/test下执行ftp,都下载到这个目录了。
b)批量下载每下载一个文件就会有确认提示,可以关闭这个提示,prompt off

 5、上传文件
 ftp> put test1.txt /usr/cc/testAB.htm  
 ftp> mput *.txt
 PS:上传文件都来自于本地主机的当前目录下。比如,在/opt/ipnet/test下运行的ftp命令,则上传的文件都是/opt/ipnet/test目录下的

 6、文件传输类型
 a)查看ftp> type
  Using binary mode to transfer files.

 7、关闭
 ftp> bye
 ftp> quit
其他:
1.FTP> ! 从 ftp子系统退出到外壳。
2.FTP> ? 显示 ftp命令说明。? 与 help相同。
  格式:? [command]
  说明:[command]指定需要帮助的命令名称。如果没有指定 command,ftp将显示全部命令的列表。
3.FTP> append 使用当前文件类型设置将本地文件附加到远程计算机上的文件。
  格式:append local-file [remote-file]
  说明:local-file 指定要添加的本地文件。
  remote-file 指定要添加 local-file的远程计算机上的文件。如果省略了 remote-file,本地文件名将被用作远程文件名。
4.FTP> ascii 将文件传送类型设置为默认的 ASCII。
  说明:FTP 支持两种文件传送类型,ASCII码和二进制图像。在传送文本文件时应该使用ASCII。
5.FTP> bell 切换响铃以在每个文件传送命令完成后响铃。默认情况下,铃声是关闭的。
6.FTP> binary(或bi)将文件传送类型设置为二进制。
7.FTP> bye(或by)结束与远程计算机的 FTP会话并退出 ftp。
8.FTP> cd 更改远程计算机上的工作目录。
  格式:cd remote-directory
  说明:remote-directory 指定要更改的远程计算机上的目录。
9.FTP> close 结束与远程服务器的 FTP会话并返回命令解释程序。
  FTP> debug 切换调试。当调试打开时,发送到远程计算机的每个命令都打印,前面是字符串“>”。默认情况下,调试是关闭的。
10.FTP> delete 删除远程计算机上的文件。
  格式:delete remote-file
  说明:remote-file 指定要删除的文件。
11.FTP> dir 显示远程目录文件和子目录列表。
  格式:dir [remote-directory] [local-file]
  说明:remote-directory 指定要查看其列表的目录。如果没有指定目录,将使用远程计算机中的当前工作目录。Local-file指定要存储列表的本地文件。如果没有指定,输出将显示在屏幕上。
12.FTP> disconnect从远程计算机断开,保留 ftp 提示。
13.FTP> get 使用当前文件转换类型将远程文件复制到本地计算机。
  格式:get remote-file [local-file]
  说明:remote-file 指定要复制的远程文件。
  Local-file 指定要在本地计算机上使用的名称。如果没有指定,文件将命名为 remote-file。
14.FTP >glob 切换文件名组合。组合允许在内部文件或路径名中使用通配符(*和?)。默认情况下,组合是打开的。
15.FTP >hash切换已传输的每个数据块的数字签名 (#) 打印。数据块的大小是2048字节。默认情况下,散列符号打印是关闭的。
16.FTP >help显示 ftp 命令说明。
  格式:help [command]
  说明:command 指定需要有关说明的命令的名称。如果没有指定 command,ftp将显示全部命令的列表。
17.FTP >lcd 更改本地计算机上的工作目录。默认情况下,工作目录是启动 ftp的目录。
  格式:lcd [directory]
  说明:directory 指定要更改的本地计算机上的目录。如果没有指定directory,将显示本地计算机中当前的工作目录。
18.FTP >literal 将参数逐字发送到远程 FTP服务器。将返回单个的 FTP 回复代码。
  格式:literal argument [ ...]
  说明:argument 指定要发送到 FTP服务器的参数。
19.FTP >ls 显示远程目录文件和子目录的缩写列表。
  格式:ls [remote-directory] [local-file]
  说明:remote-directory 指定要查看其列表的目录。如果没有指定目录,将使用远程计算机中的当前工作目录。 local-file指定要存储列表的本地文件。如果没有指定,输出将显示在屏幕上。
20.FTP >mdelete 删除远程计算机上的文件。
  格式:mdelete remote-files [ ...]
  说明:remote-files 指定要删除的远程文件。
21.FTP >mdir显示远程目录文件和子目录列表。可以使用 mdir 指定多个文件。
  格式:mdir remote-files [ ...] local-file
  说明:remote-files 指定要查看列表的目录。必须指定 remote-files。请键入 -使用远程计算机上的当前工作目录。
  local-file 指定要还原列表的本地文件。请键入-在屏幕上显示列表。
22.FTP >mget 使用当前文件传送类型将远程文件复制到本地计算机。
  格式:mget remote-files [ ...]
  说明:remote-files 指定要复制到本地计算机的远程文件。
23.FTP >mkdir 创建远程目录。
  格式:mkdir directory
  说明:directory 指定新的远程目录的名称。
24.FTP >mls 显示远程目录文件和子目录的缩写列表。
  格式:mls remote-files [ ...] local-file
  说明:remote-files 指定要查看列表的文件。必须指定 remote-files;
  请键入- 使用远程计算机上的当前工作目录。
  local-file 指定要存储列表的本地文件。请键入 -以在屏幕上显示列表。
25.FTP >mput 使用当前文件传送类型将本地文件复制到远程计算机上。
  格式:mput local-files [ ...]
  说明:local-files 指定要复制到远程计算机的本地文件
26.FTP >open 与指定的 FTP服务器连接。
  格式:open computer [port]
  说明:computer 指定要连接的远程计算机。可以通过 IP地址或计算机名称指定计算机(DNS 或主机文件必须可用)。如果自动登录打开(默认),ftp还将尝试自动将用户登录到 FTP 服务器port指定用来联系 FTP 服务器的端口号。
27.FTP >prompt 切换提示。如果关闭提示时 mget及 mput 传送所有文件,Ftp在多文件传送过程中将提示允许您有选择地检索或存储文件。默认情况下,提示是
  打开的。
28.FTP >put 使用当前文件传送类型将本地文件复制到远程计算机上。
  格式:put local-file [remote-file]
  说明:local-file 指定要复制的本地文件。
  remote-file 指定要在远程计算机上使用的名称。如果没有指定,文件将命名为 local-file。
29.FTP >pwd 显示远程计算机上的当前目录。
30.FTP >quit 结束与远程计算机的 FTP 会话并退出 ftp。
31.FTP >quote 将参数逐字发送到远程 FTP服务器。将返回单个的 FTP 回复代码。
  Quote 与 literal相同。
  格式:quote argument [ ...]
  说明:argument 指定要发送到 FTP服务器的参数。
32.FTP >recv使用当前文件传送类型将远程文件复制到本地计算机。Recv 与 get相同。
  格式:recv remote-file [local-file]
  说明:remote-file 指定要复制的远程文件。
  local-file 指定要在本地计算机上使用的名称。如果没有指定,文件将命名为 remote-file。
33.FTP >remotehelp显示远程命令帮助。
  格式:remotehelp [command]
  说明:command 指定需要帮助的命令的名称。如果没有指定 command,ftp将显示全部远程命令的列表。
34.FTP >rename重命名远程文件。
  格式:rename filename newfilename
  说明:filename 指定要重命名的文件。 newfilename指定新的文件名。
35.FTP >rmdir 删除远程目录。
  格式:rmdir directory
  说明:directory 指定要删除的远程目录的名称。
36.FTP >send 使用当前文件传送类型将本地文件复制到远程计算机上。Send与put 相同。
  格式:send local-file [remote-file]
  说明:local-file 指定要复制的本地文件。 remote-file指定要在远程计算机上使用的名称。如果没有指定,文件将命名为 local-file。
37.FTP >status 显示 FTP 连接和切换的当前状态。
38.FTP >trace 切换数据包跟踪。Trace在运行 ftp 命令时显示每个数据包的路由。
39.FTP >type 设置或显示文件传送类型。
  格式:type [type-name]
  说明:type-name 指定文件传送类型。默认设置为 ascii。如果没有指定type-name,将显示当前的类型。
40.FTP >user 指定远程计算机的用户。
  格式:user username [password] [account]
  说明:user-name 指定登录到远程计算机所使用的用户名。password指定 user-name 的密码。如果没有指定,但必须指定,ftp会提示输入密码。
  account 指定登录到远程计算机所使用的帐户。如果没有指定account,但是需要指定,ftp会提示您输入帐户。
41.FTP >verbose 切换 verbose模式。如果打开,将显示所有 ftp 响应。在文件传送完成后,将同时显示与传送效率有关的统计信息。默认情况下,verbose是打开的。

SCP介绍
secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。

命令格式:scp  [参数]  [本地主机文件路径]  [远程主机路径]
  参数选项: 
-1  强制scp命令使用协议ssh1  
-2  强制scp命令使用协议ssh2  
-4  强制scp命令只使用IPv4寻址  
-6  强制scp命令只使用IPv6寻址  
-B  使用批处理模式(传输过程中不询问传输口令或短语)  
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  
-p 保留原文件的修改时间,访问时间和访问权限。  (建议使用,传输时保留属性时间信息,否则会导致时间发生改变无法进行增量传输)
-q  不显示传输进度条。  (很适合crontab任务计划中使用)
-r  递归复制整个目录。  
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   
-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   
-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  
-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    
-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     
-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   
-P port  注意是大写的P, port是指定数据传输用到的端口号   
-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

1、从本地复制到远程

#scp /home/administrator/news.txt [email protected]:/etc/squid

/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径

2、将远程服务器上的文件复制到本机

#scp [email protected]:/usr/local/sin.sh /home/administrator

remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)
/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件
/home/administrator 将远程文件复制到本地的绝对路径
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:

#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

安装 SSH(Secure Shell) 服务以提供远程管理服务

sudo apt-get install ssh

SSH 远程登入 Ubuntu 机

ssh [email protected]

将 文件/文件夹 从远程 Ubuntu 机拷至本地(scp)

scp -r [email protected]:/home/username/remotefile.txt .

将 文件/文件夹 从本地拷至远程 Ubuntu 机(scp)

scp -r localfile.txt [email protected]:/home/username/

将 文件/文件夹 从远程 Ubuntu 机拷至本地(rsync)

rsync -v -u -a –delete –rsh=ssh –stats [email protected]:/home/username/remotefile.txt .

将 文件/文件夹 从本地拷至远程 Ubuntu 机(rsync)

rsync -v -u -a –delete –rsh=ssh –stats localfile.txt [email protected]:/home/username/
  • 两台linux服务器之间文件传递
scp -r [email protected]:/web/site/uploads/* /uploads/

-r copy uploads下的所有文件和文件夹

root这个是122这台服务器上面用户

192.168.1.122:服务器地址,最后一定要加冒号,然后接文件夹

/web/site/uploads 文件所在的位置。更后面的那个是要保存到本地位置

除此之外还有一些:
Linux下常用的文件传输方式介绍与比较:sftp.ssh.nc.rsync. ftp
Linux nc命令用法收集
Linux主机之间传输文件的几种方法对比

你可能感兴趣的:(linux)