1. 程式人生 > >sftp遠端傳輸指令碼

sftp遠端傳輸指令碼

該指令碼主要是是批量修改檔名,然後傳輸檔案到伺服器
#!/bin/bash #指令碼名:sftp.sh while true do num=`cat test.txt|wc -l` for ((a=1;a<=$num;a++)) do port=$(awk -v i=$a 'NR==i{print $1 }' test.txt) user=$(awk -v i=$a 'NR==i{print $2 }' test.txt) ip=$(awk -v i=$a 'NR==i{print $3 }' test.txt) serverdir=$(awk -v i=$a 'NR==i{print $4 }
' test.txt) clientdir=$(awk -v i=$a 'NR==i{print $5 }' test.txt) password=$(awk -v i=$a 'NR==i{print $6 }' test.txt) #sftp -oport=$port [email protected]$ip lftp -u ${user},${password} sftp://${ip}:${port} <<EOF cd ${serverdir} lcd ${clientdir} mget *.log.ok.tar.gz by EOF done cd /test
for i in `ls *.log.ok.tar.gz` do #獲取檔名以第一個匹配到ok的左邊字串 file=${i%ok*} mv $i ${file}ok.ok.tar.gz done done 要讓程式在關閉終端以後繼續在後臺執行,可以執行以下命令 nohup bash sftp.sh >/dev/null 2>&1 & test.txt檔案內容如下 22 root 192.168.4.50 /root/yjt /test 123456 22 root 192.168.4.45 /root/yjt /test 123456