shell 脚本 lftp日志上传 判断和上传的文件是否一致
------------恢复内容开始------------
1 #!/bin/bash 2 3 #用户名 4 user=root 5 #密码 6 password=123 7 #sftp的地址 8 ip=x.x.x.x 9 #需要上传到的sftp目的目录 10 destdir=/upload 11 #本地需要上传文件的目录 12 sourcedir=/opt/ 13 14 #需要上传的文件名 15 filename=yilia11.txt 16 17 lftplog=/root/lftplog.txt 18 19 SSHDIR=/etc/ssh/ssh_config 20 21 if [[ $? -eq 0 ]];then 22 echo -e "\033[32m 正在修改ssh_config配置....\033[0m" 23 > SSHDIR 24 echo 'Host x.x.x.x 25 StrictHostKeyChecking=no' >> $SSHDIR 26 fi 27 28 #将ftp连接后执行命令的标准输出内容输出到7,把7保存在result.txt中 29 exec 7>&1 1>$lftplog 30 lftp -u $user,$password sftp://$ip <<EOF 31 cd $destdir 32 lcd $sourcedir 33 put $filename 34 ls 35 close 36 quit 37 EOF 38 ##恢复标准输出,以为上面语句将标准输出绑定到fd 7了 39 exec 1>&7 40 #关闭7号输出,所以这样就把操作sftp的记录的标准输出都输出到了result.txt中了 41 exec 7>&- 42 43 exit_file=`cat $lftplog | grep $filename` 44 45 #$filename ftp服务器名称 46 RemoteFileSize=`grep $filename $lftplog | awk '{print $5}'` 47 48 #$files 本地文件路径 49 LocalFileSize=`stat $filename | awk '/Size/ {print $2}'` 50 51 if [ ! -n "$exit_file" ] 52 then 53 echo "sftp中上传的文件不存在,上传失败!!!" 54 elif [ $RemoteFileSize == $LocalFileSize ] 55 then 56 echo "sftp中有上传的文件,上传成功" 57 58 else 59 echo "sftp中上传的文件不存在,上传失败!!!" 60 fi 61
参考:
https://blog.csdn.net/iris_csdn/article/details/103367533
https://blog.csdn.net/sanzhongzhifu/article/details/84254538
------------恢复内容结束------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-05-06 仿flash实现图片轮换播放