一个ftp shell的例子

原创 2007年09月29日 11:58:00

#远程目录下每天会根据产生群ID来产生目录,因为每天的产生的群ID是不同的,所以目录名称和个数也是不定的
#但是每个目录下生成的文件是相同,不仅文件格式相同,文件名称也是相同的,但是文件内容是不同的
#我们现在要下载这些文件,使他们能被ETL调用,但是ETL不能识别可变目录,只能识别可变文件
#所以我们的处理方案是将文件下载下载到同一个目录下,但是因为文件名是相同的,而目录名是不同的
#所以我们将文件名改为目录名.例如:远程目录/951/filesize.txt,远程目录/952/filesize.txt,那么下载到本地后
#变成 本地目录/951 远程目录/952 ,注意此时本地目录下的951是远程目录/951/filesize.txt,本地目录下的952是远程目录/952/filesize.txt,


#远程主机登录用户名
 username=mad
#远程主机登录用户密码
 password=mad
#远程主机ftp下载目录
 ftp_dir=/home/mad/mkt_home/webapps/data/ad/bi/task
#本地存放下载文件的目录
 local_dir=/home/etl/business/mad/send
#需要下载的文件名
 filename=filesize.txt
#记录所有需要下载的目录的文件
 dir_record=dir_record.txt
#进入本地目录
  cd $local_dir
#登录远程主机,进入到远程目录,列出远程目录下所有目录打印到本地目录中一个文件中
  echo "---->start read dir"
  (echo "user $username $password"
   echo "cd $ftp_dir"
   echo "prompt"
   #列出远程远程目录下所有目录打印到本地目录中的${dir_record}这个文件中
   echo "mdir $ftp_dir ${local_dir}/${dir_record}"
   #表示同意。即"yes"
   echo "y"
   echo "by")|ftp -v -i -n 192.168.163.41
  echo "---->start get file"
 

 #读取记录目录的文件,取得对应的远程目录
 # 'substr($0,1,1)=="d" 判断是否是文件类型是否是目录。{print $9}即打印目录名
 #肯定是要循环读取了
   for dir in `cat $dir_record|awk 'substr($0,1,1)=="d" {print $9}'`
   do
     cd $local_dir
     #将要访问远程目录
     sub_ftp_dir=${ftp_dir}/$dir
     echo "sub_ftp_dir="$sub_ftp_dir
    
     (echo "user $username $password"
      echo "prompt"
      echo "cd $sub_ftp_dir"
      #从远程目录获取
      echo "get $filename"
         #表示同意。即"yes"
      echo "y"
      echo "by")|ftp -v -i -n 192.168.163.41 
     #改名,即将文件名改为它所在的目录名
      mv $filename $dir
       
   done
   #进入本地目录
   cd $local_dir
   #删除记录远程目录的文件
   rm $dir_record
  
    

25个简单shell例子

1.模拟linnux登录shell 复制代码 代码如下: #/bin/bash echo -n "login:" read name echo -n "password:" read passw...
  • liu136313
  • liu136313
  • 2016年06月06日 14:09
  • 5353

我的一些简单的shell脚本实例

自己写了一下小的shell实例,虽然很小,但所有的大的程序都是由小的模块堆积起来的,程序员一定要懂得一种脚本的书写,而我,只会在linux下工作,所以就只能写linux的shell脚本了,呵呵,本文会...
  • jb19900111
  • jb19900111
  • 2013年10月29日 14:37
  • 11620

一个带参数的Shell的例子

一个带参数的Shell的例子
  • u011843461
  • u011843461
  • 2014年07月08日 13:55
  • 1091

libcurl使用ftp的一个例子

#include #include "curl.h" //#include #include #include #include #include #include #define ...
  • a1232345
  • a1232345
  • 2014年11月21日 11:05
  • 522

Linux下使用Shell脚本向FTP服务器上传或下载一个文件

//ftpput.sh #!/bin/sh #FileName:ftpput.sh #Function:从本地客户端向ftp服务器上传一个文件 #Version:V...
  • sunrier
  • sunrier
  • 2012年07月20日 13:06
  • 21797

c# ftp客户端的一个例子

  • 2014年02月17日 14:12
  • 50KB
  • 下载

国外的一个FTP例子

  • 2010年10月06日 16:41
  • 674KB
  • 下载

一个Linux Shell入门的例子

Shell脚本如下:  1 #!/bin/bash  2 # we have less than 3 arguments. Print the help text:  3 if [ $# -lt 3 ...
  • wangxin1982314
  • wangxin1982314
  • 2016年01月14日 15:30
  • 255

cgi简介以及一个用shell脚本写的shell例子分析

什么是cgi cgi是common gateway interface的简称,这是一个用来处理http请求的接口; 由于http请求十分多样且十分复杂,web服务器不能完成这种操作,于是便...
  • duanxinpeng
  • duanxinpeng
  • 2016年11月10日 21:17
  • 1415

shell ftp 连接 linux 等

  • 2017年05月22日 16:54
  • 4.97MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个ftp shell的例子
举报原因:
原因补充:

(最多只允许输入30个字)