当前位置: 首页 > news >正文

东莞南城网站建设价格洛阳网站建设启辰网络

东莞南城网站建设价格,洛阳网站建设启辰网络,做电子网站,编写程序的步骤expect 是什么 expect - programmed dialogue with interactive programs#xff08;与互动程序进行程序对话#xff09; 定义脚本执行的 shell #!/usr/bin/expect -f 定义的是执行 expect 可执行文件的链接路径#xff08;或真实路径#xff09;#xff0c;功能类似于bas…expect 是什么 expect - programmed dialogue with interactive programs与互动程序进行程序对话 定义脚本执行的 shell #!/usr/bin/expect -f 定义的是执行 expect 可执行文件的链接路径或真实路径功能类似于bash等shell功能。 set timeout 10 设置超时时间单位是秒如果设为 timeout -1表示永远不超时。 spawn spawn 进入 expect 环境后才能执行内部命令不能直接在默认的 shell 环境种进行执行 主要功能传递交互指令 expect 主要判断输出结果是否包含某项字符串如果没有设置超时时间则立即返回如果设置了超时时间则等待一段时间后返回。 send 执行交互动作就是想要执行的命令。 命令字符串结尾要加上“\r”如果出现异常等待的状态可以进行核查。 interact 执行完后保持交互状态把控制权交给控制台如果不添加这一项交互命令会自动推出。 exp_continue The command exp_continue allows expect itself to continue executing rather than returning as it normally would. By default exp_continue resets the timeout timer. The -continue_timer flag prevents timer from being restarted. (See expect for more information.) 命令exp_continue允许expect 重复执行而不是直接返回。默认情况下exp_continue重置超时计时器。-continue_timer 标志阻止计时器重新启动。 $argv expect 脚本可以接受从bash传递过来的参数可以使用 [lindex $argv n]获得n从0开始分别表示第1个到第n个参数。 eof The pattern eof introduces an action that is executed upon end-of-file. A separate eof pattern may also follow the output flag in which case it is matched if an eof is detected while writing output. The default eof action is “return”, so that interact simply returns upon any EOF. 希望实现场景 ssh 到目标主机后检查目标文件夹是否存在如果存在先删除后创建如果不存在则创建。退出ssh交互界面使用scp将本地zip文件上传到目标主机。ssh 到目标主机后解压zip文件到指定目录。 # 首次连接目标主机需要输入yes rootcurtis-Aspire-E5-471G:/home/curtis/write_code# ssh 192.168.0.101 The authenticity of host 192.168.0.101 (192.168.0.101) cant be established. ECDSA key fingerprint is SHA256:gsW8dLII4nP2kSburZz0NKi6yR4A3SnrEJVFsAw0. Are you sure you want to continue connecting (yes/no/[fingerprint])?# 需要输入密码的提示 rootcurtis-Aspire-E5-471G:/home/curtis/write_code# ./func.exp rlk 192.168.0.101 123 spawn ssh rlk192.168.0.101 rlk192.168.0.101s password:按照下下边这种写法会发现ssh成功之后会马上退出退出的原因是send命令之后没有expect命令将不会被执行。 #!/usr/bin/expect -fset host_name [lindex $argv 0] set ip_addr [lindex $argv 1] set pwd [lindex $argv 2]spawn ssh $host_name$ip_addr expect {*yes/no* { send yes\r; exp_continue }*password: { send $pwd\r } }rootcurtis-Aspire-E5-471G:/home/curtis/write_code# ./func.exp rlk 192.168.0.101 123 spawn ssh rlk192.168.0.101 rlk192.168.0.101s password: rootcurtis-Aspire-E5-471G:/home/curtis/write_code#如果期望ssh后进行命令行交互可以在末尾添加interact 这里我希望ssh上去之后判断某个文件夹是否存在如果存在先删除然后在创建如果不存在则直接创建。 如何判断文件夹是否存在 rootcurtis-Aspire-E5-471G:/home/curtis/write_code# file shell shell: directory rootcurtis-Aspire-E5-471G:/home/curtis/write_code# file kkkk kkkk: cannot open kkkk (No such file or directory)注意事项如果仅仅有send命令远端将不执行send对应的命令立即退出shell交互界面 如以下例子仅存在send没有expect #!/usr/bin/expect -fset host_name [lindex $argv 0] set ip_addr [lindex $argv 1] set pwd [lindex $argv 2] set check_dir [lindex $argv 3] set send_dir [lindex $argv 4]spawn ssh $host_name$ip_addr expect {*yes/no* { send yes\r; exp_continue }*password: { send $pwd\r } } set timeout 3 expect *rlkrlk*send file $check_dir\r结果如下所示 rootcurtis-Aspire-E5-471G:/home/curtis/write_code# ./func.exp rlk 192.168.0.101 123 /home/rlk/curtis /home/curtis/write_code/Tutorials-master.zip spawn ssh rlk192.168.0.101 rlk192.168.0.101s password: Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantage* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edge616 updates can be installed immediately. 332 of these updates are security updates. To see these additional updates run: apt list --upgradableThe list of available updates is more than a week old. To check for new updates run: sudo apt update Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settingsYour Hardware Enablement Stack (HWE) is supported until April 2025. Last login: Fri Mar 17 23:00:46 2023 from 192.168.0.105 # ssh成功之后立即退出 rlkrlk:~$ rootcurtis-Aspire-E5-471G:/home/curtis/write_code#最终实现 #!/usr/bin/expect -fset host_name [lindex $argv 0] set ip_addr [lindex $argv 1] set pwd [lindex $argv 2] set check_dir [lindex $argv 3] set send_dir [lindex $argv 4]spawn ssh $host_name$ip_addr expect {*yes/no* { send yes\r; exp_continue }*password: { send $pwd\r } } set timeout 3 expect *rlkrlk*send file $check_dir\r expect {*: directory* { send rm -rf $check_dir mkdir -p $check_dir\r }*(No such file or directory)* { send mkdir -p $check_dir\r } } # 需要根据删除文件夹大小来调整超时时间 # 所谓超时时间就是等待expect期望结果的时间如果时间到了还没有达到预期就只能退出 set timeout 10 expect *rlkrlk* send exit\r expect eofspawn scp $send_dir $host_name$ip_addr:$check_dir expect {*yes/no* { send yes\r; exp_continue }*password: { send $pwd\r } } # 需要根据文件大小合理设置超时时间 set timeout 10 expect eofspawn ssh $host_name$ip_addr expect {*yes/no* { send yes\r; exp_continue }*password: { send $pwd\r } } set timeout 3 expect *rlkrlk*send unzip $check_dir/Tutorials-master.zip -d $check_dir/\r set timeout 10 expect *rlkrlk* send exit\r
http://www.hkea.cn/news/14299347/

相关文章:

  • 自己做黑彩网站外贸网站销售方式
  • 7天精通网站建设实录网站群建设方案.doc
  • 个人博客网站制作搭建宁波seo网络推广公司
  • 厦门外贸网站建设公众号软文范例100
  • 网站开发类合同百度百科怎么创建自己
  • 湖北省建设安全管理协会网站泸州住院证明图片在线制作
  • 网站开发问题及解决网页制作教程视频
  • 男女做爰全过程网站南阳建站公司
  • 唐山中小企业网站制作没广告的视频播放器app
  • 高淳城乡建设局网站免备案wordpress主机空间
  • 青岛黄岛网站建设公司电话搜房网
  • 什么网站好建设h5互动的网站
  • 静态网站公用头部如何调用标题婚庆公司起名字大全免费
  • 移动网站开发教材开发工具在哪里
  • 搭建个网站需要多少钱整形网站优化
  • 钢管网站建设湖南定制响应式网站有哪些
  • 网站设计模板怎么使用湖南电商平台网站建设
  • 鞍山网站设计制作网站网络营销渠道的功能有
  • 河南网站建设工作室和县建设局网站
  • 上海专业网站建设网站今天出入苏州最新通知
  • 网站快速排名技巧房地产开发商是干什么的
  • 怎么做网站内容公司网站运营维护单位
  • 建网站 可以看到访客吗昆山建设招标信息网站
  • 深圳品牌医疗网站建设新浪微博网站建设
  • 安康网站建设智能小程序wordpress 源码讲解
  • 网站推广 济南高校二级网站建设要求
  • 字牌标识公司网站网站编号 6019湖北雨水最新消息
  • 网站群 seo上饶商城网站建设
  • 查网站二级域名南化建设公司官网
  • 太原电商网站设计做百度手机网站优化