• 将hdfs上的数据上传到ftp服务器(是ftp不是sftpf服务器)的脚本


    今天公司的业务要将hive逻辑生成的表数据做数据外发到对应的业务部门。(将数据上传到ftp服务器)

    具体脚本如下:

    #!/bin/bash
    
    #/*********************************************************************
    #*模块名 :数据
    #*程序名 :数据
    #*功能 : 数据上传sftp版本2
    #*开发人 : gxg
    #*开发日期: 2021-09-18
    #*修改记录: 
    #*执行参数:${yyyyMMdd} 
    #*数据:FTP
    #*
    #*********************************************************************/
    
    #这里定义变量,通常传入的日期参数pt是yyyymmdd格式,data_date是yyyy-mm-dd格式
    
    pt=$(date -d "-0 day $3 " +%Y%m%d)
    echo 'pt='$pt
    
    USER=suiyoushi
    #密码
    PASSWORD='自己的密码'
    #FTP目录
    DESDIR=/label_data
    #本地临时目录
    
    SRCDIR=/apps/ftpdata/ai/luyin/sftp/${pt}
    table_name='cdm_data'
    
    
    #创建本地临时目录
    mkdir -p $SRCDIR
    rm -rf $SRCDIR/*
    #将数据拉取到本地服务器上
    hadoop fs -get /user/hive/dtwarehouse/cdm/yiche/cdm_data/pt=${pt}/*  ${SRCDIR}
    hadoop fs -ls /user/hive/dtwarehouse/cdm/yiche/cdm_data/pt=${pt}/*
    ls /apps/ftpdata/ai/luyin/sftp/${pt}
    
    #ftp服务器IP
    IP=81.0.0.0
    #端口
    PORT=21
    
    #登陆服务器上传文件
    ftp -i -v -n ${IP}<<EOF
    user ${USER} ${PASSWORD}
    binary
    mkdir ${DESDIR}/${table_name}
    cd ${DESDIR}/${table_name}
    mkdir ${pt}
    rm -rf ${DESDIR}/${table_name}/${pt}/*
    cd ${DESDIR}/${table_name}/${pt}
    pwd
    lcd ${SRCDIR}
    prompt
    quote pasv
    passive
    mput 0*
    cd ${DESDIR}/${pt}
    pwd
    ls
    by
    EOF
    res=$? #获取上一个语句执行结果
    if [ $res -ne 0 ]; then #若执行结果不为0(即出错),则退出并返回错误代码
      exit $res
    fi
    
    echo 'SFTP put success'

    这里需要注意的是:我们想动态的在远程的ftp服务上建立目录,但是那好像不能创建多层目录,他不能像Linux服务器一样的通过

    mkdir -p的形式创建多层目录,所以只能一级一级的创建

    mkdir ${DESDIR}/${table_name}
    cd ${DESDIR}/${table_name}
    mkdir ${pt}
    所以这里先创建了一层目录,然后进入到目录下,然后再进行创建目录。


  • 相关阅读:
    让DateTimePicker显示空时间值 (转) 武胜
    Webcam in C#: AForge.NET (转) 武胜
    C#自定义事件的步骤 武胜
    交换机VLAN的配置 (转) 武胜
    虚拟LAN安全的最佳实践经验 (转) 武胜
    绿色版 MySQL 的安装配置 (转) 武胜
    net 中捕获摄像头视频的方式及对比(How to Capture Camera Video via .Net) (转) 武胜
    C# WndProc的使用方法 (转) 武胜
    金融证券业Windows NT服务器热备份系统工作示意图 (转) 武胜
    ubuntu下配置samba实现文件夹共享
  • 原文地址:https://www.cnblogs.com/gxgd/p/15598607.html
Copyright © 2020-2023  润新知