shell实现linux到linux上传文件

这个功能实现的是linux上传文件到linux,这个和一般的上传不同。一般上传是固定目录的批量上传或者上传单个文件,该脚本实现的是不同目录下的不同文件上传到不同目录下。这也是工作中实际遇到的问题。


配置文件test.conf:

#源文件路径,原文件名,目标路径,目标文件名  
/root/test11,wen.txt,/root/test21,wen.txt
/root/test12,wen.txt,/root/test22,wen.txt
/root/test13,wen.txt,/root/test23,wen.txt


shell脚本:

#!/bin/bash
#获取配置文件按行赋给arr数组
i=0
while read line
do
    arr[${i}]=${line}
    (( ++i ))
done < /root/test.conf


for data in ${arr[@]}
do
IFS=',' arrEle=($data)
#ftp上传文件
ftp -n<<EOF
open 192.168.168.128
user root root123
binary
    lcd ${arrEle[0]}
    mkdir ${arrEle[2]}
    cd ${arrEle[2]}
    put ${arrEle[1]} ${arrEle[3]}
close
bye
EOF
done


这是第一次搭建linux环境,第一次写shell脚本,感谢同事兰清,网友小叶。这个功能还有我认为还有不足,对于配置文件中的每条记录都要进行一次ftp连接。ftp连接我认为和数据库连接一样也是相当耗费资源的,可以连接一次,然后循环逐个读取配置文件,按照配置文件指定的目录和地址进行上传;但是ftp命令好像不支持循环命令(如果真是如此,我目前会认为这个设计相当不合理)。还有一点犯了个错误就是当初在ftp成功之后读取配置文件,如果看这样可以的话,就少了一次循环,但这样还是不可以;因为ftp成功之后,我们所作的操作应该都是操作的服务器。

欢迎各位指正!谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值