- 论坛徽章:
- 0
|
先说下要求:
每天7:30 开始 FTP 到外公司的服务器上取数据文件.
取下来,则一次成功;
如果没有取到,则 每 10 分钟FTP 外公司服务器上取,直至 8:30 .
目前我的做法:
把写的这个ftp.sh 创建为7:30 crontab 的作业.
脚本内容如下(cat ftp.sh) :
cat ftp.sh
-------------------------------------------------------------------------------------------------
#!/bin/sh
###################################
# 设置变量
###################################
LOCAL_DIR=
BAK_DIR=
ERRLOG=
IP=
USER=
PASSWD=
DIR_R=
WLOOP="0600"
###################################
mkdir -p ${BAK_DIR}
#备份文件
cd ${LOCAL_DIR}
while [ "${WLOOP}" -le "0831" ]
do
# FTP 服务器 取文件
ftp -v -n $IP>>${LOCAL_DIR}/${ERRLOG}<<FTPINI
user ${USER} ${PASSWD}
prompt
cd ${DIR_R}#远端目录
binary
mget *.bin
close
bye
FTPINI
#判断文件是否在本地
if [ -f ${LOCAL_DIR}/*.bin ]
then
#退出
WLOOP="1200"
else
#继续循环,直至 8:30 后
sleep 600
WLOOP=`date '+%H%M'`
fi
done
exit
-------------------------------------------------------------------
遇到的问题:
把 while 循环去掉,就正常了(能够正常外公司的服务器取下文件来).
把 FTP 连接服务器 取文件放在循环里,就报错.报错信息提示我的 N+1 行有错(这段 shell一共 N 行代码).
这样的问题,如何解决?
先谢谢达人了. |
|