最近碰到一個需求,需要將一些服務器上的文件(主要是一些重要的數據和資源,例如sql,操作產生的圖片,文件等等)。
方法有很多種,最簡單的我看下來還是用lftp算了,但是注意考慮到具體的需求,我這邊是因爲文件本身是不大的。
文件壓縮,sql提取,定時任務這種就不說了,都是基操。
然後是使用lftp把要備份的文件發送過去。
這裏不寫sh腳本了,就簡單列舉一下操作步驟
一.在存放備份的服務器上搭建一個FTP服務。
推薦使用docker搭建,方便高效,基本命令如下:
yum install docker
安裝docker,已安裝直接跳過下一步。
然後是保證20,21端口不被佔用,學過計網的應該都知道,然後啓動docker
service docker start
接着遠程下拉鏡像一行運行ftp服務
docker run -d -v /home/vsftpd:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=ftpadmin -e FTP_PASS=ftpadmin --privileged --name vsftpd fauria/vsftpd
這樣就運行了一個ftp服務,然後去打開防火牆相應端口,這裏就不贅述了。
這裏配置的ftp服務的用戶名是ftpadmin,密碼也是ftpadmin,可以根據實際需求更改用戶名。
然後就配置ftp完成了,可以電腦上登錄試一下,windows訪問linux搭建的ftp,可能會發生一些錯誤,但是並不影響linux之間的ftp訪問。
二.如何使用lftp發送文件
這邊也不用腳本了,就命令行,腳本可自行編寫。
安裝lftp
yum install lftp
安裝完成後即可使用
建立訪問請求
lftp X.X.X.X
X.X.X.X剛剛搭建的備份ftp服務器的ip地址或域名
登錄ftp,使用ftp服務
user username password
username和password是剛剛設置的用戶名和密碼
找到本地的待備份文件存在路徑如/A/B
lcd /A/B
lcd操作的是本地,cd操作的是ftp服務器的路徑
分兩種情況
一.複製一個文件夾C
mirror -R C
二.複製一個文件C
put -R C
然後就可以看到傳輸成功,在ftp服務器上也出現了相應的文件。bash腳本可根據需求靈活編寫,此外還有rsync等方式在某些需求場景下更加好用,可以另外參考。