#!/bin/bash
sftp_Host="192.168.1.1"
sftp_userName="admin"
sftp_passWord="admin"
sftp_port=22
sftpRemotePath="/data/fiels"
sftpLocalPath="/root/sftp"
current=$(date "+%Y-%m-%d %H:%M:%S")
echo "当前时间是:$current"
if [[ $# == 0 ]]; then
yesterday=$(date "+%Y%m%d" -d "-1 days")
fi
if [[ $# == 1 ]]; then
yesterday=$1
fi
myDir=$sftpLocalPath
if [[ ! -d $myDir ]]; then
mkdir -p $myDir
fi
sftpLoadPath=$sftpRemotePath$yesterday
fileFilter=$yesterday*.gz
# SFTP非交互式操作
sftp_download()
{
expect <<- EOF
set timeout 5
spawn sftp -P $sftp_port $sftp_userName@$sftp_Host
expect {
"(yes/no)?" {send "yes\r"; expect_continue }
"*assword:" {send "$sftp_passWord\r"}
}
expect "sftp>"
send "cd $sftpLoadPath \r"
expect "sftp>"
send "lcd $myDir \r"
expect "sftp>"
set timeout -1
send "mget $fileFilter \r"
expect "sftp>"
send "bye\r"
EOF
}
unGzipFiles(){
cd $myDir
fileList=`ls *`
fileArr=($fileList)
for fileName in ${fileArr[@]}
do
echo "开始解压文件:$fileName"
gzip -d $fileName
done
}
reNameFiles(){
cd $myDir
fileList=`ls *`
fileArr=($fileList)
for fileName in ${fileArr[@]}
do
echo "reNameFile :$fileName"
mv $fileName $fileName".csv"
done
}
echo "执行sftp下载操作 : 数据日期:$yesterday"
sftp_download
echo "$yesterday 文件下载完成"
echo "执行解压操作"
unGzipFiles
echo "重命名文件"
reNameFiles
shell 脚本sftp 文件下载
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 今天在mac上安装 bcftools,mac上什么都没有。 brew下载前两个成功,第三个找不到。 在我准备放弃的...
- 1、背景概述: 工作中遇到这样一种情况,就是有时候需要下载服务器某个目录下面所有后缀名为tar.gz的压缩包到本地...
- 因程序执行过程中生成大量的日志,导致日志文件迅速增大,占用大量磁盘空间,影响到程序正常运行,程序执行速度减慢 ...
- 在做iOS Flutter依赖引入的时候,需要去遍历Pods 工程中的文件,而这个工程下刚好有一个名称带空格的文件...