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
  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/daxiong1314/p/13555130.html
Copyright © 2011-2022 走看看