網(wǎng)站建設(shè)流程有東莞網(wǎng)站推廣方案
文章目錄
- 前言
- 一、配置本地用戶可上傳權(quán)限ftp服務(wù)器
- 1、用戶登錄ftp
- 二、配置FTP上傳腳本文件
- 1.腳本代碼如下
- 補(bǔ)充知識(shí)
前言
vsftpd(Very Secure FTP Daemon)是一個(gè)在 Linux/Unix 系統(tǒng)上運(yùn)行的一款開源免費(fèi)的 FTP 服務(wù)器軟件。vsftpd 支持支持 匿名用戶、本地用戶、虛擬用戶 3種登錄方式。vsftpd 高速安全,支持帶寬限制,支持IPv6,可分配虛擬IP,支持創(chuàng)建虛擬用戶。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、配置本地用戶可上傳權(quán)限ftp服務(wù)器
[root@node2 ~]# yum install vsftpd -y
1、創(chuàng)建本地用戶
[root@node2 ~]# useradd backuper
[root@node2 ~]# echo redhat | passwd --stdin backuper
2、本地用戶上傳目錄
[root@node2 vsftpd]# mkdir -p /data/ftp
[root@node2 vsftpd]# chown -R backuper /data/ftp
3、修改ftp配置文件
進(jìn)入到 vim /etc/vsftpd.conf 進(jìn)行文件配置,剛開始進(jìn)去就是空白的,講以下的代碼寫入進(jìn)去,然后保存anonymous_enable=NOlisten=YESlisten_ipv6=NOuserlist_deny=NOlocal_root=/data/ftp
4、設(shè)置白名單
[root@node2 vsftpd]# echo backuper > user_list
5、重啟服務(wù):
[root@node2 vsftpd]# systemctl restart vsftpd
6、安裝客戶端
[root@node1 ~]# yum install ftp lftp -y
以上三步一般都不會(huì)有問題的,直接跟著敲就好了
1、用戶登錄ftp
二、配置FTP上傳腳本文件
1.腳本代碼如下
代碼如下(示例):
#!/bin/bash#定義當(dāng)天的時(shí)間
nowdate=`date +%Y%m%d`#獲取7天前的日期,刪除ftp服務(wù)器空間7天前備份
deldate=$(date -d -7day +%Y%m%d)#定義備份文件存放的目錄
MPATH=/backupftp -v -n 192.168.40.142<<EOF
user backuper redhat
binary
hash
mkdir ${nowdate}
cd ${nowdate}
lcd ${MPATH}
mput *.*
close
bye
#here document
EOF
echo "successfully"
[root@master shell]# ./test6.sh
Connected to 192.168.40.142 (192.168.40.142).
220 (vsFTPd 3.0.2)
530 Permission denied.
Login failed.
530 Please login with USER and PASS.
Hash mark printing on (1024 bytes/hash mark).
530 Please login with USER and PASS.
530 Please login with USER and PASS.
Local directory now /backup
mput mysql_bak.2023-07-22.sql? 530 Please login with USER and PASS.
Passive mode refused.
mput percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm? 530 Please login with USER and PASS.
Passive mode refused.
mput school.sql? 530 Please login with USER and PASS.
Passive mode refused.
mput school.sql.gz? mput school1.sql? mput school2.sql? mput schoolbabe.sql? mput shcool.sql.gz? mput shcool3.sql? mput student.sql? 221 Goodbye.
successfully
這里有一個(gè)問題,就是提示530問題,我去搜索了一下需要關(guān)閉ftp的enable服務(wù),將這里的userlist_enable注釋掉
原因:
因?yàn)闄z測(cè)不到文件,但是文件又被啟用,所以導(dǎo)致了賬號(hào)和密碼無法找到,故無法登陸,
原以為腳本修改得有問題,折騰了快一個(gè)小時(shí),才發(fā)現(xiàn)應(yīng)該是ftp的問題,第一次接觸ftp,所以導(dǎo)致不是特別熟練
補(bǔ)充知識(shí)
1、
ftp -v -n 192.168.40.142<<EOF
<< 是使用即時(shí)文件重定向輸入
EOF是即時(shí)文件的標(biāo)志它必須成對(duì)出現(xiàn),以標(biāo)識(shí)即時(shí)文件的開始和結(jié)尾。
FTP常見標(biāo)識(shí) | 作用 |
---|---|
-d | 使用調(diào)試模式,但必須編輯 /etc/syslog.conf 文件并添加以下中的一項(xiàng):user.info FileName 或 user.debug FileName。 |
-g | 禁用文件名中的元字符拓展,即取消全局文件名。 |
-i | 關(guān)閉多文件傳輸中的交互式提示。 |
-n | 防止在起始連接中的自動(dòng)登錄。否則, ftp 命令會(huì)搜索 $HOME/.netrc 登錄項(xiàng),該登錄項(xiàng)描述了遠(yuǎn)程主機(jī)的登錄和初始化過程。 |
-v | 顯示遠(yuǎn)程服務(wù)器的全部響應(yīng),并提供數(shù)據(jù)傳輸?shù)慕y(tǒng)計(jì)信息,即在程序運(yùn)行時(shí)顯示詳細(xì)的處理信息。 |
2、傳輸文件類型
FTP傳輸文件類型 | 作用 |
---|---|
ascii | 將文件傳輸類型設(shè)置為網(wǎng)絡(luò) ASCII。此類型為缺省值,即默認(rèn)使用ascii方式進(jìn)行傳輸。 |
binary | 將文件傳輸類型設(shè)置為二進(jìn)制映像。需要使用binary方式傳輸?shù)奈募愋陀蠭SO文件、可執(zhí)行文件、壓縮文件、圖片等。此類型可能比 ASCII 傳送更有效。 |
ebcdic | 將文件傳輸類型設(shè)為 EBCDIC。 |
image | 將文件傳輸類型設(shè)置為二進(jìn)制映像。此類型可能比 ASCII 傳送更有效。 |
local M | 將文件傳輸類型設(shè)置為本地。M 參數(shù)定義每計(jì)算機(jī)字位的十進(jìn)制數(shù)。此參數(shù)沒有缺省值。 |
tenex | 將文件傳輸類型設(shè)為 TENEX 機(jī)器需要的類型 |
3、文件傳輸
下載文件
下載多個(gè)文件
mget [remote-files] | 獲取遠(yuǎn)端所在文件夾下所有文件 |
---|
mget *
and
met *.*
mget . 每下載一個(gè)文件,都會(huì)有提示。如果要除掉提示,則在mget . 命令前先執(zhí)行:prompt off。
下載單個(gè)文件
get [remote-file] [local-file] | 獲取遠(yuǎn)端FTP上的a.txt文件 |
---|
get a.sh
上傳文件
上傳多個(gè)文件
mput local-files | 將所在文件夾下所有文件上傳到FTP上 |
---|
mput *
上傳單個(gè)文件
put local-file [remote-file] | 將本地a.txt文件上傳到遠(yuǎn)端FTP上 |
---|
put a.sh
4、分界符標(biāo)志
<< EOF
#execute shell
EOF
EOF只是一個(gè)分界符標(biāo)志,完全可以用abc, ! 等替換,也一樣的功能,只是大家都習(xí)慣用EOF來表示。 <<用法:當(dāng)shell看到<<的時(shí)候,它就會(huì)知道下一個(gè)詞是一個(gè)分界符。在該分界符以后的內(nèi)容都被當(dāng)作輸入,直到shell又看到該分界符(位于單獨(dú)的一行)。因此分界符可以是定義的任何字符串。