该脚本主要是是批量修改文件名,然后传输文件到服务器
#!/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 $user@$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