一个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
  
    

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

libcurl使用ftp的一个例子

#include #include "curl.h" //#include #include #include #include #include #include #define ...

一个关于ftp的小例子

  • 2009-11-09 11:05
  • 1.12MB
  • 下载

c# ftp客户端的一个例子

  • 2014-02-17 14:12
  • 50KB
  • 下载

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

//ftpput.sh #!/bin/sh #FileName:ftpput.sh #Function:从本地客户端向ftp服务器上传一个文件 #Version:V...

国外的一个FTP例子

  • 2010-10-06 16:41
  • 674KB
  • 下载

一个Linux Shell入门的例子

Shell脚本如下:  1 #!/bin/bash  2 # we have less than 3 arguments. Print the help tex...

C# FTP客户端的例子

例子来源于 c#入门经典一书 一个Winform程序,访问微软的ftp地址。 using System; using System.Collections.Generic; using S...

sqlserver2000中,通过ftp自动远程备份和恢复数据库的例子

要求:具有管理员权限,一般sa用户就可以。备份原理如下:首先导出数据库到本地硬盘上,然后压缩成cab文件,之后用ftp.exe将压缩包上传到ftp服务器上恢复原理如下:首先在ftp服务器上下载压缩包,...

使用git代替FTP部署代码到服务器的例子

这篇文章主要介绍了使用git代替FTP部署代码到服务器的例子,这种方法可以节省流量、节省时间,需要的朋友可以参考下 本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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