date: 2020-11-24title: sftp/ftp数据上传下载相关脚本 #标题
tags: sftp #标签
categories: shell # 分类

记录下sftp/ftp数据上传下载相关脚本。

下载sftp上某个目录前一天的数据

  1. >>> cat /data/jiyun/download_sftp.sh
  2. #!/usr/bin/env bash
  3. # Author : Lv Jian Zhao
  4. # Date : 2020-10-29
  5. # describe: Download yesterday's file from SFTP
  6. yesterday_date=$(date +%Y%m%d -d '-1 days')
  7. sftp_user=sftp
  8. sftp_passwd=$(echo 'OVVUzAabzwo=' | base64 -d)
  9. cd ${cur_dir}
  10. lftp -u ${sftp_user},${sftp_passwd} -p 32222 sftp://1.1.1.1 <<EOF
  11. cd upload/activity/
  12. mirror ${yesterday_date} /data/jiyun/
  13. by
  14. EOF

从ftp服务器下载数据

>>> cat download_ftp.sh 
#!/usr/bin/env bash
# Author :  Lv Jian Zhao
# Date   : 2020-11-10
# describe: download ftp data from ftp.i139.cn


set -e
ftp_user=sjbss
ftp_passwd=$(echo 'Zsdbngfda21yCg==' | base64 -d)

USAGE(){
echo -e "\033[33m
     $0 Script usage:
          -f: Specifies the path of the file on the FTP server.
          -l: Specify local path ( default local path: /tmp/lvjianzhao/ ).
          -h: Output help information
 \033[0m"
}

if [[ $1 == '--help' || $1 == '-h' ]]
    then
      USAGE
      exit 0
fi
while getopts ":f:l:" optname;do
  case "$optname" in
  "f")
      ftp_file=$OPTARG
      ;;
  "l")
      local_path=$OPTARG
      ;;          
  ":")
    echo "This option has no value!"
    ;;
  "*")
    echo "error message"
    ;;
  "?")
    echo "Not sure about this option..."
  ;;
esac
done

${local_path:=/tmp/lvjianzhao/} &> /dev/null || true
filename=$(basename ${ftp_file})
find ${local_path} -name "${filename}" -delete

cd ${local_path}
lftp -u ${ftp_user},${ftp_passwd} ftp.lkjg.cn <<EOF
mget -c ${ftp_file} 
by
EOF

上传数据到ftp服务器

>>> cat upload_ftp.sh 
#!/usr/bin/env bash
# Author :  Lv Jian Zhao
# Date   : 2020-11-11
# Email  : lvjianzhao@aspirecn.com
# describe:  Upload data to ftp server ftp.123.cn


set -e
ftp_user=sjbss
ftp_passwd=$(echo 'Zk1G321564yCg==' | base64 -d)

USAGE(){
echo -e "\033[33m
     $0 Script usage:
          -f: Specifies the path of the file on the FTP server (default ftp path /lvjianzhao/).
          -l: Specify local file absolute path.
          -h: Output help information
 \033[0m"
}

if [[ $1 == '--help' || $1 == '-h' ]]
    then
      USAGE
      exit 0
fi
while getopts ":f:l:" optname;do
  case "$optname" in
  "f")
      ftp_path=$OPTARG
      ;;
  "l")
      local_file=$OPTARG
      ;;          
  ":")
    echo "This option has no value!"
    ;;
  "*")
    echo "error message"
    ;;
  "?")
    echo "Not sure about this option..."
  ;;
esac
done

${ftp_path:=/lvjianzhao/} &> /dev/null || true

lftp -u ${ftp_user},${ftp_passwd} ftp.123.cn <<EOF
cd ${ftp_path}
mput -c ${local_file}
by
EOF