由于公司軟件比較特殊,我們發(fā)布版本通常會給很多服務(wù)器都一并發(fā)布了嘱蛋,而且用的還是ftp饶辙,如果每個(gè)服務(wù)器都先打開ftp軟件祟蚀,連接上,然后再上傳趴生,這樣無疑不符合我們程序員懶的特質(zhì)疙驾。
于是我就花時(shí)間寫了一個(gè)這樣的腳本用來批量上傳文件凶伙,我在這里會使用到lftp這個(gè)軟件,這個(gè)軟件比系統(tǒng)自帶的ftp命令強(qiáng)大多了它碎,而且ftp命令是不支持覆蓋現(xiàn)有的目錄的函荣,所以還在苦苦尋找使用ftp覆蓋目錄的童鞋可以不用再繼續(xù)了,下面就是簡單介紹一下lftp的基本操作扳肛。
lftp的操作基本和ftp命令大同小異傻挂,首先打開ftp連接:lftp username:password@ip
,打開鏈接后挖息,你需要使用cd
命令進(jìn)入到你需要上傳的目錄金拒,然后通過lcd
命令進(jìn)入到本地的目錄,這時(shí)你就可以通過put
套腹、mput
殖蚕、mirror
等命令上傳文件轿衔,或通過get
、mget
等命令下載文件睦疫,最后可以通過exit
退出ftp害驹。
lftp主要命令
命令 | 作用 |
---|---|
help | 產(chǎn)看命令列表 |
ls | 顯示遠(yuǎn)端文件列表 |
cd | 切換遠(yuǎn)端目錄 |
get | 下載遠(yuǎn)程文件(單文件) |
mget | 下載遠(yuǎn)程文件(多文件) |
pget | 使用多個(gè)線程來下載遠(yuǎn)端文件 |
mirror | 同步目錄,可以用于下載和上傳(- R)目錄 |
put | 上傳文件(單文件) |
mput | 上傳文件(多文件) |
mv | 移動文件(可以重命名目錄蛤育、文件) |
rm | 刪除遠(yuǎn)端文件 |
mrm | 刪除多個(gè)文件宛官,可以使用通配符 |
mkdir | 創(chuàng)建目錄 |
rmdir | 刪除目錄 |
pwd | 顯示遠(yuǎn)端的當(dāng)前目錄 |
lcd | 切換本地目錄 |
lpwd | 顯示本地目錄 |
exit | 退出ftp |
示例:
# 連接數(shù)據(jù)庫
lftp username:password@127.0.0.1
# 列出當(dāng)前ftp目錄的文件
lftp username@127.0.0.1:~> ls
# 進(jìn)入ftp上的某個(gè)目錄
lftp username@127.0.0.1:~> cd testDir
# 定位到本地目錄
lftp username@127.0.0.1:~> lcd /local/testDir
# 上傳單個(gè)文件
lftp username@127.0.0.1:~> put testFile
# 上傳多個(gè)文件,可以使用通配符
lftp username@127.0.0.1:~> mput *.md
# 將本地的目錄同步到ftp上
lftp username@127.0.0.1:~> mirror -R .
# 獲取遠(yuǎn)程的文件
lftp username@127.0.0.1:~> get testFile
# 獲取遠(yuǎn)程的多個(gè)文件
lftp username@127.0.0.1:~> mget testFile
# 將遠(yuǎn)程的目錄同步到本地
lftp username@127.0.0.1:~> mirror .
# 退出ftp
lftp username@127.0.0.1:~> exit
ftp上傳腳本:
#!/bin/bash
pathStr=`pwd`
# 將腳本所在的目錄的所有文件都上傳到ftp上
# 參數(shù)為ftp連接信息 username:password@ip
lftp $1 <<EOF
lcd $pathStr
mirror -R -c .
rm ftp.sh
exit;
EOF
只要將上面腳本的mirror -R -c .
改為mirror -c .
就可以變成一個(gè)備份腳本
如果想要了解lftp的更多細(xì)節(jié)瓦糕,可以訪問他們的官網(wǎng)