#!/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 文件下载
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天在mac上安装 bcftools,mac上什么都没有。 brew下载前两个成功,第三个找不到。 在我准备放弃的...
- 1、背景概述: 工作中遇到这样一种情况,就是有时候需要下载服务器某个目录下面所有后缀名为tar.gz的压缩包到本地...
- 因程序执行过程中生成大量的日志,导致日志文件迅速增大,占用大量磁盘空间,影响到程序正常运行,程序执行速度减慢 ...
- 在做iOS Flutter依赖引入的时候,需要去遍历Pods 工程中的文件,而这个工程下刚好有一个名称带空格的文件...