首页 > 系统相关 >shell脚本中使用expect实现自动交互

shell脚本中使用expect实现自动交互

时间:2024-08-01 11:28:05浏览次数:15  
标签:shell remote send sftp expect file 交互 dir

需求:

每天凌晨监控远程服务器上指定目录下文件是否生成,已生成则拉取到本地服务器指定目录下

实现方案:

shell脚本实现,配置crontab定时任务。
shell脚本中sftp登录远程服务器时自动输入密码等操作需用用到expect语法,需安装expect
expect安装参考:https://blog.csdn.net/nichosx/article/details/89428259
#!/bin/bash
remote_ip="113.4.186.2"
remote_password="123456"
remote_user="test"
remote_file_dir="/home/test/hx_file"
local_file_dir="/home/weblogic/download/hx_file"

/usr/bin/expect << EOF
spawn sftp ${remote_user}@${remote_ip}
expect {
  "*(yes/no)?"
  {send "yes\r";exp_continue}
  "*password:"
  {send "${remote_password}\r"}
}
expect "sftp>"
send "cd ${remote_file_dir}\r"
expect "sftp>"
send "cd ${remote_file_dir}\r"
expect "sftp>"
send "lcd ${local_file_dir}\r"
expect "sftp>"
send "get *\r"
expect "sftp>"
send "exit\r"
EOF

echo "文件已下载"

标签:shell,remote,send,sftp,expect,file,交互,dir
From: https://www.cnblogs.com/mmcode/p/18336292

相关文章

  • Shell脚本的进程管理
    进程管理是系统管理的重要方面,通过对进程的监控、启动、停止和重启,可以保证系统的稳定运行。Shell脚本是一种强大的工具,可以对进程进行自动化管理,提高效率和准确性。参考:shell脚本进程管理-CSDN文库shell脚本进程管理-CSDN文库【Linux基础】利用shell脚本完成对程序进......
  • 理解 Unix/Linux 中的 Terminal、Shell、TTY 和 Console
    文章目录1Terminal1.1传统意义上的Terminal1.2现代的Terminal2TTY2.1TTY的起源2.2Linux中的TTY2.3虚拟终端2.3.1虚拟终端为什么是虚拟的?2.4伪终端2.4.1伪终端的组成2.4.2伪终端的工作原理2.4.3伪终端的应用3Console3.1Console的定义3.2Linux中......
  • 使用Shell登录Jenkins
    使用Shell登录Jenkins在root用户下使用sujenkins​命令切换到jenkins​用户时失败.可以先检查jenkins​用户有没有shell权限:grepjenkins/etc/passwd如果jenkins​用户的登录shell设置为/bin/false​,它会阻止用户登录系统。手动编辑/etc/passwd​文件来更改......
  • 饮冰十年-人工智能-Vue3-67-组件间数据交互
    上一篇:饮冰三年-人工智能-Vue-66Vue组件化很久以前我对Vue2的组件间数据交互做过学习,兜兜转转再用Vue已经是Vue3版本。Vue3组件间数据交互1、准备工作环境准备使用Vite创建一个新的Vue3项目功能介绍该功能由APPVue+4个组件组成  ......
  • Linux中expect命令使用报错“invalid command name “Y“ while executing “Y“ invo
    1.执行expect命令的时候一直在报错:spawnshsetup.sh#invalidcommandname"Y"  whileexecuting"Y"  invokedfromwithin"expect"[Y]Yes,Iagree. [N]No,Idon'tagree."",如下图所示:其中的源码:    /usr/bin/expect&l......
  • 如何在 python 中使用矩阵分解从 3 个不同的矩阵(2 个交互矩阵和 1 个相似矩阵)创建一个
    我有3个不同大小的矩阵A、B、C,它们有一些共同的元素。A(相似性)与B(交互)有一些共同元素,但与C(第二交互矩阵)没有共同元素。B有一些与C相同的元素。我想创建一个基于B和C的矩阵M,但提供基于A、B、C的输出,就像推荐系统类型一样,其中根据评分、观看次数和偏好推荐电影。例......
  • 虚拟机安装Rock和ubuntu并实现shell远程连接
    一、VMware安装在网上下载安装包打开安装包一路点击下一步直到完成安装即可。安装完成之后可以根据需要修改网络配置使用默认也可。在“编辑”-“虚拟网络编辑器”中修改弹出的窗口中点击“更改配置”二、虚拟机安装rocky8.62.1下载镜像可在官网或者国内开源镜像站下载2......
  • 如何用C语言写一个简易的shell
    参考文章https://danishpraka.sh/posts/write-a-shell/参考文章是英文的,我基本上是结合自己的理解翻译了一下,代码加了些注释,对阅读英文感兴趣的可以直接看这篇就可以了然后原作者还增加了管道等等功能,在参考文章最后的click那里,可以跳转到github上的仓库运行环境linux环境即......
  • 基于随机森林、XGBoost、lightGBM的大气污染预测可视化系统【前后端交互】
    文章目录==有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主==数据介绍系统界面展示系统登陆展示系统主界面可视化展示机器学习模型预测展示框架界面功能每文一语有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主数据介绍使用的大气......
  • 五分钟,用flask做一个简单的交互页面
    Python作为一个万能且简单的编程语言,其在各个领域都有着很好的表现。其中在Web领域,也有大名鼎鼎的Django和Flask,今天我们就通过Flask,用五分钟写一个简单的交互页面!基本功能1、安装Flask在命令行中输入pipinstallflask即可安装Flask。2、创建Flask应用在P......