shell脚本中 判断FTP上传文件是否备份成功

shell脚本中 需要判断FTP上传文件是否上传成功,就需要shell进行交互来进行验证。有2种方案可以解决

1. 通过expect进行交互,需要linux下安装expect。实例网上自行搜索,后面上传一附件(ftp.sh)自行查看(代码好像来源于chinaunix.net,具体忘记了)。

2. shell脚本获取ftp上传后的日志,然根据日志判断是否存在上传,详细讲这点

a. 

# ftp执行返回信息输出到文件中,然后那获取文件中信息判断
#!/bin/bash
#$1 host $2 user $3 password $4 local file  $5 remote file 
#法1
ftp -in $1 1>log.txt <<!!
user $2 $3
bin
prompt
put $4 $5  
dir $5
close
bye
!!

#法2
echo "open $1
user $2 $3
bin
prompt
put $4 $5
dir $5
close
bye"|1>log.txt ftp -in 
# 然后分析log.txt  分析文件或者 文件大小对比均行

 b.  获取log.txt文件FTP上传文件大小

#$filename ftp服务器名称
RemoteFileSize=`grep $filename log.txt | awk '{print $5}'`

 c.  判断本地文件大小

#$files 本地文件路径
LocalFileSize=`stat $files | awk '/Size/ {print $2}'`

 d. 判断RemoteFileSize与LocalFileSize是否一致

相关推荐