centos7下(Linux) SFTP的自动 登陆 下载文件 shell脚本

linux下关于SFTP的自动登陆下载文件 .sh脚本编写

1.需求

编写一个shell脚本来自动把某个服务器下的文件下载到本地

2.脚本

#!/bin/bash

# 创建文件夹 来存放文件
dir="td_area_tmp"
if [ ! -d "$dir" ];then
mkdir $dir
echo "创建文件夹成功"
else
echo "文件夹已经存在"
fi
# 文件夹创建成功!!

# 切换文件目录 
cd td_area_tmp

# 开始登陆sftp 下载文件
/usr/bin/expect <<\EOF
#@@@@@@@@@@@@@@@@@@@@@@@@参数设置开始@@@@@@@@@@@@@@@
#设置远端IP
set ip 11.11.11.11
#设置用户名
set username hh
#设置密码
set password pass
#@@@@@@@@@@@@@@@@@@@@@@@设置结束@@@@@@@@@@@@@@@@@@@
spawn sftp ${username}@${ip}
expect "*?"
send "yes\r"
expect "*Password"
send "${password}\r"
expect "sftp>"
send "cd /data/disk02/hh/upload/td_area\r"
expect "sftp>"
send "get *.csv ./\r"
expect "sftp>"
send "bye\r"
EOF
# sftp 下载文件完毕

这里使用了/usr/bin/expect 智能问答,有不了解的可以百度下。

3.判断文件夹下的文件数量

这里是我记笔记 ,跟标题无关

#!/bin/bash

## ls -l ./|grep "^-"|wc -l 检查文件个数
## 判断文件个数:
fileCount=$(ls -l |grep "^-"|wc -l)
echo $fileCount
if [[  $fileCount  -gt 0 ]]
then
echo "含有"
## 含有文件  往 hdfs 推送
# 检查是否存在该目录
hdfs dfs -test -e /tenants/hh/work/hh/qk/${table_name_tmp}
if [ $? -eq 1 ];then
    ## 如果存在,这个命令将返回0;反之则返回1。
    # 创建文件夹
    hdfs dfs -mkdir /tenants/hh/work/hh/qk/${table_name_tmp}
fi
hdfs dfs -put ./*.csv /tenants/hh/work/hh/qk/${table_name_tmp}
# beeline -u jdbc:hive2://11.11.11.11:10000/HH -n hh -p pass -e "truncate table ${table_name_tmp};"
# beeline -u jdbc:hive2://11.11.11.11:10000/HH -n hh -p pass -e "load data inpath '/tenants/hh/work/hh/qk/${table_name_tmp}/*.csv' into table ${table_name_tmp};"
fi

若有错误,希望大佬指出。
对你有帮助给点个👍再走呗。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您介绍一下Linux CentOS7系统下如何编写一个简单的有趣的Shell脚本。 首先,打开终端,使用命令行编辑器(如vi)创建一个名为“fun_script.sh”的文件: ``` vi fun_script.sh ``` 然后,在文件中输入以下代码: ``` #!/bin/bash echo "Hello, what is your name?" read name echo "Hello, $name! Welcome to my fun script." echo "Would you like to play a game?" read response if [[ "$response" == "yes" ]]; then echo "Great! Let's play a guessing game." echo "I'm thinking of a number between 1 and 10. Guess what it is:" read guess if [[ "$guess" -eq 7 ]]; then echo "Congratulations! You guessed it right." else echo "Sorry, that's not the right number." fi else echo "Okay, maybe next time. Goodbye!" fi ``` 代码中包含了一些简单的交互功能和一个猜数字的小游戏。脚本首先会问用户的名字,然后询问是否想玩游戏。如果用户选择玩游戏,脚本会让用户猜一个数字,如果猜对了就会提示用户胜利,否则就会告诉用户猜错了。如果用户不想玩游戏,脚本会结束。 保存并退出编辑器。接下来,使用以下命令将脚本设置为可执行文件: ``` chmod +x fun_script.sh ``` 现在,运行脚本: ``` ./fun_script.sh ``` 您会看到脚本开始问您的名字,然后询问是否想玩游戏。如果您选择玩游戏,脚本会让您猜一个数字。如果您猜对了,它会告诉您胜利,否则会告诉您猜错了。 这只是一个简单的例子,您可以根据自己的兴趣和需要编写更复杂的脚本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值