今天我們來討論Linux系統之間的文件共享,包含:SCP、FTP、rz / sz、wget
一、SCP
其實我在寫
SSH協議常見問題排錯
章節中已介紹其SCP用法。
現我把SCP常用語法格式,給大家說下
scp用法舉例:
1)從本地複製到遠端
1.複製文件
scp '本地文件' 遠端用戶名@遠端設備IP:遠端文件夾
#舉例:scp /home/test.txt [email protected]:/home
2.複製文件夾
## -r:遞歸複製整個目錄
scp -r '本地文件夾' 遠端用戶名@遠端設備IP:遠端文件夾
2)從遠端複製到本端
從遠程複製到本地,只要將從本地複製到遠程的命令的後2個參數調換順序即可;
1.複製文件
scp 遠端主機名@遠端設備IP:/遠端主機文件 /存放在本地的文件夾
#舉例: scp [email protected]:/test/test1.txt /tmp
2.複製文件夾
scp -r 遠端主機名@遠端設備IP:/遠端主機文件夾/ /存放在本地的文件夾
二、FTP
目前主流的FTP服務器端軟件有很多,包括Vsftpd、FileZilla Server、Server-U等,咱們今天主要講下使用較爲廣泛的Vsftpd
Vsftpd:very secure FTP daemon,非常安全的FTP服務進程。
爲啥說這貨是非常安全的FTP服務進程?小夥伴們可自行Google哦
好了,不說廢話了。咱直接實戰
vsftpd服務安裝配置
Vsftpd安裝有兩種方式:一是基於yum方式安裝;二是基於源碼編譯安裝。
兩種方法最終實現效果是一樣的,本文采用yum安裝Vsftpd,具體步驟如下:
1)在shell命令行中執行如下命令
[root@qll251 ~]# yum -y install vsftpd
2)啓動Vsftpd服務、查看進程是否啓動 及查看使用的端口
[root@qll251 ~]# systemctl start vsftpd
[root@qll251 ~]# ps -aux |grep vsftpd
root 1960 0.0 0.0 53284 576 ? Ss 13:42 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 1962 0.0 0.0 112728 972 pts/3 S+ 13:43 0:00 grep --color=auto vsftpd
[root@qll251 ~]#
[root@qll251 ~]# netstat -antup | grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 1960/vsftpd
[root@qll251 ~]#
3)Vsftpd服務的配置文件:
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
4)客戶端訪問FTP服務器三種方式
- 匿名用戶訪問FTP
- 系統用戶訪問FTP
- 虛擬用戶模式訪問FTP
4.1 匿名用戶訪問FTP
vsftpd默認以匿名用戶訪問。
默認FTP服務器的共享路徑:/var/ftp/pub
修改etc/vsftpd/vsftpd.conf
配置文件
anonymous_enable=YES //允許匿名用戶登錄FTP服務器。默認爲YES
local_enable=NO //禁止本地用戶登錄FTP服務器。
anon_other_write_enable=YES //允許匿名用戶擁有寫權限,默認值爲NO。
anon_upload_enable=YES //允許匿名用戶上傳文件。只有write_enable設置爲YES時,該配置項纔有效。而且匿名用戶對相應的目錄必須有寫權限。默認爲NO。
anon_mkdir_write_enable=YES //允許匿名用戶創建目錄。只有在write_enable設置爲YES時有效。且匿名用戶對上層目錄有寫入的權限。默認爲NO。
anon_root=/var/www/html //修改匿名模式下的共享路徑。注意:本次試驗未修改默認共享路徑。
上面提到,如果匿名用戶需要上傳、修改及刪除等權限時,需要對/var/ftp/pub
目錄有寫權限,使用chown和chmod任意一種命令均可設置權限。
chown -R ftp:ftp /var/ftp/pub/
chmod +w /var/ftp/pub/
如上,vsftpd .conf配置完畢,同時var/ftp/pub
權限設置完畢。接下來我們重啓vsftpd服務並且關閉防火牆及關閉selinux即可。
systemctl restart vsftpd //重啓vsftpd服務
systemctl stop firewalld && systemctl disable firewalld.service //關閉防火牆並禁止開啓自啓動`
編輯
/etc/selinux/config
配置文件
改:SELINUX=enforcing
爲:SELINUX=disabled
並reboot重啓系統使配置永久生效。
重啓服務器,我們未設置vsftpd開機自啓動哦,我們需要執行
systemctl start vsftpd
,啓動vsftpd服務,向外提供FTP服務。
本次試驗由於我未關閉系統selinux,導致匿名用戶訪問FTP服務器後,無法進行創建目錄及刪除文件操作。折騰了好久,纔想明白。
vsftpd是一個FTP服務器程序,SELinux是CentOS的防火牆組件。因此vsftpd 默認被 SELinux 攔截。所有我們要關閉selinux。
Windows客戶端登錄測試:
以上便是匿名用戶訪問FTP的方式,接下來我們來討論系統用戶訪問FTP如何配置
4.2 系統用戶訪問FTP
1.創建系統用戶,設置登錄密碼
2.修改vsftpd.conf配置文件
3.重啓vsftpd服務;這種模式下,登錄訪問的目錄就是/home/新建用戶/
詳細配置步驟
(1) 創建系統用戶ftp_user,設置密碼123456
[root@qll251 ~]# useradd ftp_user
[root@qll251 ~]# echo "123456" | passwd --stdin ftp_user
更改用戶 ftp_user 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@qll251 ~]#
(2)修改/etc/vsftpd/vsftpd.conf
配置文件代碼如下:
anonymous_enable=NO //禁止匿名用戶登錄FTP服務器。
local_enable=YES //允許本地用戶登錄FTP服務器。
write_enable=YES //對登錄用戶開啓寫權限。屬全局性設置。
local_root=/var/www/html //設置本地用戶的根目錄爲/var/www/html,注意:要保證ftp_user用戶對此文件夾具有讀寫權限(本次試驗未修改此項,我共享的目錄是/home/ftp_user)
(3)重啓vsftpd服務後,Windows客戶端驗證登錄
4.3 虛擬用戶模式訪問FTP
vsftpd虛擬用戶原理是通過映射到其中一個真實用戶及設置相應的權限來實現訪問驗證,虛擬用戶不能登錄Linux系統。
我個人認爲如果僅爲了數據間的傳輸,以上兩種方式已經滿足業務需求。大家剛開始學知識的時候,夠用就好。所有我就不討論這種方式的配置步驟了,貪多嚼不爛
三、rz / sz
rz / sz 是指安裝lrzsz軟件包後,提供的上傳 下載的兩個命令。
可以用在windows與linux 系統之間的文件傳輸,體積小速度快
rz:該命令用於從本地選擇文件上傳到服務器。
sz:將選定的文件發送到本地機器。
1.下面我們通過YUM來安裝lrzsz
yum -y install lrzsz
2.執行rz命令
從本地選擇文件上傳到服務器。
報錯了…
提示:“▒CCCCCCCCCCC23be50ive.**B0100000023be50”
我用的是MobaXterm連接的服務器,要不咱用putty再試試?
putty報了一樣的錯誤,最後大殺招。Xshell !!!
下圖是Xshell終端的連接
相信正在認真閱讀的小夥伴已經發現問題所在了。
rz 與 sz 需要終端支持纔可以使用。終端就是連接遠程服務器的客戶端,例如 XShell、Putty、MobaXterm等。
通過實踐,我們得到結論:以上三款終端軟件只有Xshell可以正常使用rz,sz進行文件傳輸。
3.執行sz命令
將選定的文件發送到本地機器的桌面上。
四、wget
wget是一個下載文件的工具。
wget支持HTTP,HTTPS,和FTP協議,支持代理服務器以及斷點續傳功能。
安裝wget
[root@qll251 ~]# yum -y install wget
基本語法:
[root@qll251 ~]# wget --help
GNU Wget 1.14,非交互式的網絡文件下載工具。
用法: wget [選項]... [URL]...
常用參數:
wget -r //遞歸下載服務器上所有目錄和文件
wget -b //後臺下載
wget -c //指定斷點續傳功能,該功能要求服務器支持斷點續傳
舉個例子:
比如說,我們想下載QQ·Linux版安裝包,可直接複製該下載鏈接到Linux系統中,命令如下:
wget https://qd.myapp.com/myapp/qqteam/linuxQQ/linuxqq_2.0.0-b1-1024_x86_64.rpm
下載已完成,看下圖:
(今天我們只討論wget的使用方法。至於Linux版QQ的安裝,感興趣的小夥伴自行安裝體驗~
原則上只要是下載鏈接,都可以用wget下載到服務器中。
於是我有個猜想,把百度雲盤上的下載鏈接提取出來,使用wget是否可達到不限速的效果?感興趣的小夥伴可自行嘗試哦
更多IT技術,請微信搜索公衆號“秦露露
”或者掃描下方二維碼關注