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

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

1.scp

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

【缺点】不支持排除目录

【用法】

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

命令格式:

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

举例:

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

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

scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

scp -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名

scp -r -v /home/work/sourcedir work@www.myhost.com:/home/work/ #显示详情,加-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.0.10//home/work/source.txt #从192.168.0.10上拷贝文件夹source.txt

wget ftp://www.myhost.com//home/work/source.txt #使用主机名

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

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

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

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

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

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

4.rsync

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

【缺点】暂无

【用法】

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

命令格式:

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

举例:

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

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

rsync work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

rsync -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

rsync -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名

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

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

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

登录ssh方法:

5.1ssh 主机

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

5.2ssh 用户@主机

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

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

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

用scp命令上传和下载文件

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

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

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

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

6.winscp

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

7.ftp与sftp

Step1. 在云服务器配置FTP服务

7.1在root权限下,通过如下命令安装Vsftp。

[root@VM_250_202_tlinux ~]# yum install vsftpd

7.3在启动vsftpd服务之前,需要登录云服务器修改配置文件,将匿名登录禁用掉。打开配置文件,命令如下:

[root@VM_250_202_tlinux ~]# vim /etc/vsftpd/vsftpd.conf

在配置文件中第11行的“anonymous_enable=YES”前面加上#号,即将匿名登录禁用。

7.3读取生效配置。

[root@VM_250_202_tlinux ~]# cat /etc/vsftpd/vsftpd.conf |grep ^[^#]

local_enable=YESwrite_enable=YESlocal_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESanon_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES

7.4启动vsftpd服务。

[root@VM_250_202_tlinux ~]# service vsftpd start

7.5设置FTP用户账号。设置成功后,即可通过该账号登录FTP服务器。(1)设置FTP用户的账号,例如账号为“ftpuser1”,目录为/home/ftpuser1,且设置不允许通过ssh登录。

[root@VM_250_202_tlinux ~]# useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1

(2)设置账号对应的密码,例如密码为“ftpuser1”。

[root@VM_250_202_tlinux ~]# passwd ftpuser1

8.修改vsftpd的pam配置

发者可以通过自己设置的FTP用户帐号和密码连接到云服务器

(1)修改pam。

[root@VM_250_202_tlinux ~]# vim /etc/pam.d/vsftpd

内容修改为:

#%PAM-1.0 auth required /lib64/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib64/security/pam_unix.so shadow nullok auth required /lib64/security/pam_shells.so account required /lib64/security/pam_unix.so session required /lib64/security/pam_unix.so

(2)确认修改后的文件是否正确。

[root@VM_250_202_tlinux ~]# cat /etc/pam.d/vsftpd#%PAM-1.0 auth required /lib64/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib64/security/pam_unix.so shadow nullok auth required /lib64/security/pam_shells.so account required /lib64/security/pam_unix.so session required /lib64/security/pam_unix.so

(3)重启vsftpd服务,使修改生效。

[root@VM_250_202_tlinux ~]# service vsftpd restartShutting down vsftpd: [ OK ]Starting vsftpd for vsftpd: [ OK ]

Step2. 上传文件到Linux云服务器

8.1下载并安装开源软件FileZilla请使用FileZilla的3.5.1、3.5.2版本(使用3.5.3版本的FileZilla进行FTP上传会有问题)。由于FileZilla 官网上只提供了最新的3.5.3版本下载,因此建议开发者自行搜索3.5.1、3.5.2下

载地址。建议的3.5.1 下载地址: oldapps.com/filezilla.p

8.2连接FTP运行FileZilla,按下图所示进行配置,配置后点击“快速链接”:

配置信息说明如下:(1)主机:云服务器的公网IP(在云服务器“管理视图”页面可查看云服务器的公网IP)。(2)用户名:在Step1中设置的FTP用户的账号,这里以“ftpuser1”为例。(3)密码:在Step1中设置的FTP用

户账号对应的密码,这里以“ftpuser1”为例。(4)端口:FTP监听端口,默认为“21”。

8.3上传文件到Linux云服务器上传文件时,鼠标选中本地文件,拖拽到远程站点,即将文件上传到了Linux云服务器。注意:云服务器FTP通道不支持上传tar压缩包后自动解压,以及删除tar包功能。

9.SecureCRT

本地下载SecureCRT,解压后打开,点击快速连接upload11

输入服务器IP地址和用户名,点击连接upload12

输入服务器密码,点击确定upload13

连接成功之后,若服务器未安装RZ软件,输入apt-get install lrzsz,或 yum install lrzsz 回车等待安装upload23

安装rz成功之后,输入rz,回车upload14

弹出文件选择窗口,选择需要上传的文件,点击添加upload15

等待文件上传,完成之后则完成文件上传upload17

输入 rz

上传的文件默认在root下

Zmodem传输数据会使用到2个命令:

sz:下载(send),将选定的文件发送到本地机器,例如: sz mimvp.log ,即下载文件 mimvp.log

rz:上传(receive),运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器

使用前,记得先安装 lrzsz

brew install lrzsz

sudo yum -y install lrzsz

sudo apt-get install -y install lrzsz

问题:macOS Catalina v10.15.2 存在 SecureCRT rz 上传文件没反应

解决:直接拖拽文件到shell窗口内,然后选择Start Zmodem Upload (亲测可用)



SecureCRT

转载链接: xinruiyun.cn/zhishiku/5

发布于 2020-05-19 17:12