Linux上传下载文件的几种方式

背景:介绍除了rz、sz(系统没有可以使用yum -y install lrzsz安装即可使用)外linux上上传和下载文件的几种方式

1.scp

【优点】简单方便,安全可靠;支持限速参数

【缺点】不支持排除目录

【用法】

  scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。

  命令格式:scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>

  举例:

  scp /usr/local/source.txt work@192.168.199.33:/usr/local #把本地的source.txt文件拷贝到192.168.199.33机器上的/usr/local目录下

  scp work@192.168.199.33:/usr/local/source.txt /usr/local/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/usr/local目录下

  scp work@192.168.199.33:/usr/local/source.txt work@192.168.199.34:/usr/local #把192.168.199.33机器上的source.txt文件拷贝到192.168.199.34机器的/usr/local目录下

  scp -r /usr/local/source.txt work@192.168.199.33:/usr/local

  scp -r -v /usr/local/source.txt work@192.168.199.33:/usr/local  #加-r参数:拷贝文件夹;加-v参数:显示详情

2.rcp

  目标主机需要事先打开rcp功能,并设置好rcp的权限

  把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。

3.wget

【优点】简单方便,支持排除目录,支持限速参数

【缺点】只能从远程机器将文件或文件夹下载到本地,并且远程机器需要支持ftp服务(例如启动proftpd);参数较多,使用上比scp复杂

【用法】

  wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。

  命令格式:wget [参数] ftp://<目标机器ip或主机名>/<文件的绝对路径> #proftpd格式

  举例:

  wget ftp://192.168.199.33/usr/local/source.txt #从192.168.199.33上拷贝文件夹source.txt

  wget -nH -P /usr/local/ ftp://192.168.199.33/usr/local/source.txt #指定本地保存路径,使用参数“-P 路径”或者“--directory-prefix=路径”;-nH, --no-host-directories 不创建主机目录

  wget -r -l 0 -nH -P/usr/local/ ftp://192.168.199.33/usr/local/sourcedir #递归下载sourcedir目录,使用参数-r;参数-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).

  wget --cut-dirs=3 -r -l 0 -nH -P /usr/local/ ftp://192.168.199.33/usr/local/sourcedir #-参数-cut-dirs=NUMBER 忽略 NUMBER层远程目录,本例中将192.168.199.33上的sourcedir目录保存到本地的/usr/local目录下。

  wget --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /usr/local/ ftp://www.myhost.com//usr/local/sourcedir #-参数--limit-rate=RATE 限定下载输率

  wget --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /usr/local/ -X /usr/local/sourcedir/notincludedir ftp://www.baidu.com/usr/local/sourcedir #排除路径使用-X参数

  wget -q --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /usr/local/ -X /usr/local/sourcedir/notincludedir ftp://www.baidu.com/usr/local/sourcedir #参数-q表示安静模式,无输出;默认是-v,冗余模式

4.rsync

【优点】功能强大,操作类似scp,支持排除目录,支持限速参数,还支持本地复制

【缺点】暂无

【用法】

  rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。

  命令格式:

  rsync [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>

  举例:

  rsync /usr/local/source.txt work@192.168.199.33:/usr/local/ #把本地的source.txt文件拷贝到192.168.199.33机器上的/usr/local目录下

  rsync work@192.168.199.33:/usr/local/source.txt /usr/local/ #把192.168.199.33机器上的source.txt文件拷贝到本地的/usr/local目录下

  rsync work@192.168.199.33:/usr/local/source.txt work@192.168.199.34:/usr/local/ #把192.168.199.33机器上的source.txt文件拷贝到192.168.199.34机器的/usr/local目录下

  rsync -r /usr/local/sourcedir work@192.168.199.33:/usr/local/ #拷贝文件夹,加-r参数

  rsync -r /usr/local/sourcedir work@www.baidu.com:/usr/local/ #使用主机名

  rsync -r -v /usr/local/sourcedir work@www.baidu.com:/usr/local/ #显示详情,加-v参数

  rsync -r -v --exclude sourcedir/notinclude /usr/local/sourcedir work@www.baidu.com:/usr/local/ #排除子目录,注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则匹配不上,就不会被排除掉。

5.linux系统下用 ssh登录管理服务器,并用scp上传下载文件

登录ssh方法:

5.1 ssh 主机

  ssh 192.168.199.33 (表示用root用户登录到服务器)

5.2 ssh 用户@主机

  ssh user1@192.168.199.33 (表示用user1登录到服务器)

5.3 ssh 主机 -l 用户名 -p 端口

  ssh 192.168.199.33 -l user2 -p 8080 (表示user2用户用8080端口连接到192.168.199.33的服务器)

用scp命令上传和下载文件

scp root@192.168.199.33:1.txt 2.txt (把服务器的1.txt下载到本地,并且重命名为2.txt)

scp 2.txt root@192.168.199.33:3.txt (把本地2.txt文件上传到服务器的root目录下,并且命名为3.txt)

scp -r 的话表示上传或者下载文件夹

scp -表示加上端口信息(P为大写)

6.winscp:在Windows下下载安装 winscp,运行后可以看到远程linux 服务器目录,选择要上传的文件拖到相应的目录即可,该方式简单实用

posted on 2022-05-26 18:40  潘大炮  阅读(2274)  评论(0编辑  收藏  举报