循环FTP脚本的共享和说明
此脚本为本人工作所写,作为shell初学者,可以一起学习下
第1行为脚本第一行,当运行脚本时告诉系统选择哪一个shell,若没有第一行,系统会选择默认的shell
1 #!/bin/sh
第2-9行验证参数,若参数个数不为1,则报错
2 #验证参数个数
3 if [ $# -ne 1 ]
4 then
5 echo "Param error !"
6 echo "Usage: $0 date"
7 echo "Example: $0 20110808"
8 exit 1
9 fi
10
11 #调度日期
第12-14行,定义变量
12 etl_date=$1
13
14 ok=`echo ${etl_date}|grep -w "20[0-9][0-9][0-9][0-9][0-9][0-9]"|wc -l`
第15-22行验证参数格式,若格式不为20xxxxxx,则报错
15 #验证参数格式
16 if [ ${ok} -eq 0 ]
17 then
18 echo "Param error !"
19 echo "Usage: $0 date"
20 echo "Example: $0 20110808"
21 exit 1
22 fi
23
第24-26行定义变量
24 sub1=`echo ${etl_date} | cut -c 1-4`
25 sub2=`echo ${etl_date} | cut -c 5-6`
26 sub3=`echo ${etl_date} | cut -c 7-8`
27
第29行从配置文件ftp.cfg中读取所有的系统名称
28 #获取所有的系统
29 system_all=` awk -F= '{ if ( $1~/system_name/ ) print $ 2}' /home/edw/cjb/bin/ftp/ftp_get.cfg `
30
31 #获取系统个数
第32行对刚才读取的系统名称进行统计个数,个数为system_num
32 system_num=`echo ${system_all} | awk -F+ '{print NF}'`
33
34 echo "当前有[${system_all}]${system_num}个系统"
35
第37行,对num说明一下,用num从1增长到system_num来执行一个循环,如果不用num,也可以用shift移动变量来完成
36 #循环执行辅助参数
37 num=1
38
39 #根据系统个数${system_num},执行${system_name}次循环
40 while [ ${num} -le ${system_num} ]
41 do
42 sys_name=`echo ${system_all} | awk -F+ '{print $'$num'}'`
43 echo "第${num}个系统为${sys_name}"
第44-48行,从配置文件ftp_get.cfg中读取ftp的ip地址,用户名,密码,远程/本地路径
44 remote_ip=` awk -F= ' { if ( $1~/'${sys_name}'_ADD/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
45 user_name=` awk -F= ' { if ( $1~/'${sys_name}'_USR/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
46 pass_word=` awk -F= ' { if ( $1~/'${sys_name}'_PWD/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
47 rmt_dir=` awk -F= ' { if ( $1~/'${sys_name}'_REMOTEDIR
相关新闻>>
- 发表评论
-
- 最新评论 更多>>