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 下载地址: http://www. oldapps.com/filezilla.p hp?old_filezilla=6350
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