zoukankan      html  css  js  c++  java
  • 将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}
    所以这里先创建了一层目录,然后进入到目录下,然后再进行创建目录。


  • 相关阅读:
    Android studio快捷键总结
    汇编寄存器(内存访问)基础知识之四----栈
    汇编寄存器(内存访问)基础知识之三---mov指令
    android studio学习之一
    ASCII值对照表
    chrome 优秀的插件推荐
    android基础知识之一
    汇编基础知识之二debug的使用
    计算机专业课系列之三:进程和线程
    计算机专业课系列之二:程序的机器表示(汇编)
  • 原文地址:https://www.cnblogs.com/gxgd/p/15598607.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com