zoukankan      html  css  js  c++  java
  • sftp 上传下载脚本

    概述

     因公司项目由之前的ftp换位sftp,且之前的UDP函数未开发出来,使用脚本实现部分功能(sftp文件下载)。一次连接和多次连接均为指定文件名下载,下载最新的文件即下载修改时间最新的文件,因每天最多更新一份,在下载最新文件脚本中以天为单位。脚本内容如下。

    一次连接

    #!/bin/bash
    #  -------------+---------------------------------
    # * Filename    :       sftp_download_nowfile.sh
    # * Date        :       2020-08-24 
    # * Author      :       wangjianxiong           
    # * Description :                       
    #  -------------+---------------------------------
    
    MYPATH=$(dirname $0)
    MYPWD=`cd $MYPATH/../ && pwd`
    
    IP=59.255.188.30
    PORT=5522
    USER=ftpuser
    PASSWORD=!QAZ2wsx12345
    
    SFTPDIR=/data/file/xy
    FILE_NAME=20200818.zip
    
    find $MYPWD/data -type f -name "*" -exec rm -rf {} ;
    
    [ -f sftp_get.sh ] && rm -rf sftp_get.sh
    
    echo "lftp -u '${USER}','${PASSWORD}' sftp://${IP}:${PORT} <<EOF"  >> sftp_get.sh
    
    cat $MYPATH/../conf/list_dir | awk -F"." '{print $NF}' > new_list
    for i in `cat new_list`
    do
        lpath=`cd $MYPWD/data$i; pwd`
        rpath=$SFTPDIR$i
    
        echo "cd $rpath" >> sftp_get.sh
        echo "lcd $lpath" >> sftp_get.sh
        echo "get $FILE_NAME" >> sftp_get.sh
    done
    
    echo "bye" >> sftp_get.sh
    echo "EOF" >> sftp_get.sh
    
    chmod a+x sftp_get.sh
    View Code

    多次连接

    for循环实现

    #!/bin/bash
    #  -------------+---------------------------------
    # * Filename    :       sftp_download_nowfile.sh
    # * Date        :       2020-08-24 
    # * Author      :       wangjianxiong           
    # * Description :                       
    #  -------------+---------------------------------
    
    MYPATH=$(dirname $0)
    MYPWD=`cd $MYPATH/../ && pwd`
    
    IP=59.255.188.30
    PORT=5522
    USER=ftpuser
    PASSWORD=!QAZ2wsx12345
    
    SFTPDIR=/data/file/xy
    FILE_NAME=20200818.zip
    
    find $MYPWD/data -type f -name "*" -exec rm -rf {} ;
    
    cat $MYPATH/../conf/list_dir | awk -F"." '{print $NF}' > new_list
    for i in `cat new_list`
    do
        sleep 1
    
        lpath=`cd $MYPWD/data$i; pwd`
        rpath=$SFTPDIR$i
    
        lftp -u '${USER}','${PASSWORD}' sftp://${IP}:${PORT} <<EOF
        cd $rpath
        lcd $lpath
        get $FILE_NAME
        bye
    EOF
    done
    View Code

     下载最新文件

    for 嵌套 while

    #!/bin/bash
    #  -------------+---------------------------------
    # * Filename    :       lftp_get.sh
    # * Date        :       2020-08-28
    # * Author      :       wangjianxiong
    # * Description :
    #  -------------+---------------------------------
    
    MYPATH=$(dirname $0)
    MYPWD=`cd $MYPATH/../ && pwd`
    
    SFTPDIR=/data/file/xy
    
    find $MYPWD/data -type f -name "*" -exec rm -rf {} ;
    
    cat $MYPATH/../conf/list_dir | awk -F"." '{print $NF}' > new_list
    for i in `cat new_list`
    do
        lpath=`cd $MYPWD/data$i; pwd`
        rpath=$SFTPDIR$i
    
        i=0
        while true
        do
            lftp -u 'ftpuser','!QAZ2wsx12345' sftp://59.255.188.30:5522 <<EOF
            mirror  --newer-than='now-${i}day' --only-newer --verbose $rpath $lpath
            bye
    EOF
    
        ret=`ls $lpath`
        if [ "`ls -A $lpath`" = "" ]; then
            i=$(($i+1))
        else
            break
        fi
        done
    done
    View Code
  • 相关阅读:
    C#_数据访问类查询 和 属性扩展
    C#_0913 完整修改删除、实体类和数据访问类
    webform基础
    TreeView, 数据导出
    无边框窗体,tiner控件
    容器,打印设置
    多窗体,菜单工具栏
    公共控件
    winform
    数据访问类查询
  • 原文地址:https://www.cnblogs.com/daxiong1314/p/13555130.html
Copyright © 2011-2022 走看看