期望脚本在单独调用时有效,但不能作为盐状态

2024-03-04

我正在尝试通过expect 进行scp 和ssh 操作。如果我直接从终端调用下面的脚本,则它可以工作/usr/bin/expect myexpect.sh但是当我使用 salt 运行它时,第一个 scp 命令在第二个 ssh 失败的地方起作用。

myexpect.sh

#!/usr/bin/expect -f

set timeout 240

spawn scp apps.tar.gz /srv/salt/integration/serverclass_merged.conf [email protected] /cdn-cgi/l/email-protection:/home/foo
expect "password:"
send "password\n";
expect eof

spawn ssh -o StrictHostKeyChecking=no [email protected] /cdn-cgi/l/email-protection "cd /home/foo;tar --strip-components=1 -xzvf apps.tar.gz -C /opt/apps/;cp serverclass_merged.conf /opt/local/serverclass.conf"
expect "assword:"
send "password\r"
interact

相关的盐态看起来像,

st.sls

copy_apps:
  cmd.run:
    - name: /usr/bin/expect /home/ocdn_adm/myexpect.sh

我一无所知盐堆 /questions/tagged/salt-stack但我怀疑它没有从 pty 运行您的 Expect 脚本。所以更换interact with expect eof (or expect -timeout 12345 eof如果需要的话)。interact仅当标准输入位于 tty/pty 上时才有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

期望脚本在单独调用时有效,但不能作为盐状态 的相关文章

  • 引用附加变量?

    我怎样才能在 bash 脚本中做到这一点 bin sh func export NAME SUFFIX result of some command NAME my name func This variable will become m
  • 健全性检查 SSH 公钥? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已要求用户提供他们的公共 id rsa pub ssh 密钥 然后将其放入 home theiraccount ssh authorized key
  • 打印一个字符串,并将其特殊字符打印为文字转义序列

    我在 shell bash 脚本中有一个字符串 我想打印字符串 并将其所有 特殊字符 例如换行符 制表符等 打印为文字转义序列 例如换行符打印为 n 选项卡打印为 t 等等 不确定我是否使用了正确的术语 该示例应该能够澄清问题 Exampl
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 为所有图像添加前缀(递归)

    我有一个包含 5000 多张图像的文件夹 全部带有 JPG 扩展名 我想要做的就是递归地向所有图像添加 thumb 前缀 我发现了一个类似的问题 重命名文件和目录 添加前缀 https stackoverflow com questions
  • 将文本文件转换为逗号分隔的字符串

    我似乎没有找到与这个问题完全匹配的问题 我有一个文本文件 每行有一个文本标记 没有任何逗号 制表符或引号 我想根据文件内容创建一个逗号分隔的字符串 Input one two three Output one two three 我正在使用
  • 在 Unix 中,如何删除当前目录及其下面的所有内容?

    我知道这会删除子目录及其下面的所有内容 rm rf
  • Bash 脚本重定向不起作用,为什么? [复制]

    这个问题在这里已经有答案了 我最近在 bash 脚本中发现了意外行为 我想在解决它之前先了解它 这是一个简化的示例 bin sh SCRIPT tmp echoscript sh gt gt tmp log bin sh SCRIPT ec
  • 在 nohup 中使用别名

    为什么以下不起作用 alias sayHello bin echo Hello world sayHello Hello world nohup sayHello nohup appending output to nohup out no
  • bash 别名中允许使用哪些字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我最近添加了 alias cd alias cd alias cd 到我的 bash aliases 文件 玩弄这个 我注意到在别名时 被
  • 如何替换带引号的多单词字符串作为参数?

    我正在尝试替换包含多个带引号的单词的字符串变量作为命令的参数 因此 给出以下示例脚本 请注意 shebang 中的 x 这会导致输出被记录到 stderr bin bash x myArg hello world echo string i
  • 在docker镜像中运行多个脚本

    您好 我想知道是否可以在 docker 容器启动时自动同时运行两个脚本 第一个脚本必须运行客户端应用程序 第二个脚本必须运行服务器应用程序作为后台 You can use CMD在你的Dockerfile https docs docker
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 如何替换每行中出现的所有字符串?

    我想在以下脚本中将所有出现的 用户名 替换为 但它仅替换第一次出现的情况 ls al sed s username 这就是 sed 默认情况下的工作方式吗 提前致谢 你需要g 全局 修饰符 sed s username g
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 当我通过 shell 脚本创建 .txt 文件时,为什么文件名末尾出现问号? [复制]

    这个问题在这里已经有答案了 我正在编写一个 shell 脚本 我应该在其中创建 1 个文本文件 当我这样做时 文件名末尾出现一个问号 是什么原因 我正在 bash 脚本中尝试以下方法 1 grep ERROR a1 gt text txt
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 从重定向到日志文件的程序输出中删除进度条

    我正在运行一个程序 它会输出进度条 我是这样做的 python train py tee train log The train log看起来像下面这样 这是1号线 Training 这是2号线 000 valid 100 2630 263
  • xdotool 类型需要很长时间并导致整个桌面冻结

    我一直在使用xdotool type过去只能在快捷方式上输入耸肩xdotool type 这可行 但总是需要相当长的时间 并导致整个桌面冻结 完全冻结 而不仅仅是输入 几秒钟 不过并没有太打扰我 现在我需要一种方法来从文件中读取内容 对其进

随机推荐

  • Spring MVC:在 中使用通配符

    我正在为 Spring MVC 应用程序实现一个缓存清除系统 为了让这个系统正常工作 我必须从给定的 URL 中删除 缓存清除代码 假设我生成的缓存清除代码是 123 并且我有一个 css 网址 public 123 css style c
  • 如何从 C# 调用 C++ dll 导出函数

    这是我第一次尝试将 C 与非托管 C 混合在一起 所以这可能是一个非常简单的问题 但我不明白 我需要将 C dll 中的一些函数调用到 C 代码中 以下是 dll 项目的代码 h 文件 pragma once include
  • D的语法真的是上下文无关的吗?

    几个月前我在 D 新闻组上发布了这个问题 但由于某种原因 答案从未真正说服我 所以我想我应该在这里问 D 的语法显然是上下文无关的 http www digitalmars com d 2 0 template comparison htm
  • 将值分配给 R 中数组的特定维度

    我有一个多维数组并尝试将值分配给特定维度 请参阅下面的代码了解我当前的方法 Create a array and fill with NA set seed 1 dim arr lt seq 2 10 arr lt array NA dim
  • Angular 5子路由在路由中添加括号

    我有一个带有一系列组件的 Angular 5 应用程序 有些组件是其他组件的子组件 有些则不是 我希望应用程序具有如下结构 my account overview homepage my account my stuff profile n
  • 在开发过程中我应该如何将 Perl 警告升级为致命错误?

    当运行应用程序测试套件时 我想将所有 Perl 编译和运行时警告 例如 未初始化的变量 警告 升级为致命错误 以便我和其他开发人员调查并修复生成警告的代码 但我只想在开发和 CI 测试期间这样做 在生产中 警告应该只是警告 我尝试了以下操作
  • homestead.rb:109:in `read': 没有这样的文件或目录@ rb_sysopen

    我尝试通过官网的文档5 3使用homesteadhttps laravel com docs 5 3 homestead https laravel com docs 5 3 homestead但它不起作用 详细信息如下 C Users l
  • Cypress.io 中选择器的存储位置

    我是赛普拉斯的新手 避免将选择器 定位器硬编码到每个规范中的最佳方法是什么 在其他框架中 我们将创建一个包含所有选择器的配置文件 并让规范引用它 场景 我可能有一个在多个规范中使用的选择器 如果选择器发生变化 我不想在每个规范中更改它 我宁
  • 添加到多个 std 容器时 C++ 中的异常安全

    我有一些代码添加到std vector and a std map创建对象后 v push back object std vector m object gt id object std map 我想让这个有一个强有力的例外保证 通常 为
  • 与php中的另一个数组合并后如何从数组中删除重复元素?

    我正在尝试编写程序来计算指定开始日期后的接下来 20 个日期 然后从 20 个日期中排除周末 Holidays Array holidays 2016 12 13 2016 12 24 以及结果数组 其中仅包含除周六和周日之外的工作日 在假
  • Keycloak,如果选择更新密码操作,则不返回访问令牌

    我正在打电话 auth realms master protocol openid connect token通过在正文中发送以下内容来获取访问令牌 grant type password client id example docker
  • 如何使用 JavaScript 在 Hackerrank 中发出 AJAX 请求?

    我打开 Hackerrank 示例测试并尝试使用可能用于进行 AJAX 调用的方法 XMLHttpReq fetch等等 它们都不起作用 XHR and fetch方法不可用 First fetch async function myFet
  • 维纳滤波

    我想编写一个维纳滤波器来改善图像 我不想使用傅立叶 我知道有一个基于中值和方差的算法 但我找不到它 你们能帮我吗 http en wikipedia org wiki Wiener filter http en wikipedia org
  • 如何为新样式表生成 CSS 变量值

    我正在开发一个项目 用户可以从颜色输入中选择颜色 并使用 CSS 变量动态创建自己的主题 我希望用户能够下载包含他们选择的值的整个 CSS 文件 My issue 下载的CSS文件不显示实际的颜色值 而是显示变量名称 NOT WANTED
  • Python:CGI在脚本退出前更新网页

    好吧 这是我的情况 我编写了一个带有文本区域的 HTML 表单 该文本区域向我的 python 脚本提交 POST 请求 我使用 cgi 库来解析文本区域并将其拆分为一个数组 然后 我使用循环处理这些项目并在处理时打印它们 看来 即使我将打
  • JavaScript 和 Java 有什么区别?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 JavaScript 和 Java 有什么区别 Java 和 Javascript 很相似 就
  • 使用operator[]时如何区分读/写操作

    我需要编写一个带有重载运算符 的类 当使用运算符 读取或写入数据时 该类具有不同的行为 为了给出我想要实现的目标的实际示例 假设我必须编写一个名为 PhoneBook 的类的实现 该类可以按以下方式使用 PhoneBook phoneBoo
  • Angular 2 路由器导航功能不起作用

    我的路由器功能 导航 有问题 在我的 AppComponent 中 RouteConfig path home name Home component HomeComponent useAsDefault true data user nu
  • 如何在 Visual Studio 2010 Express for Windows Phone 上安装便携式库工具

    我一直在尝试安装可移植库工具并使用 Visual Studio 2010 Express for Windows Phone 创建可移植类库 看起来它应该可以工作 因为 PCL 说它支持 Visual Studio Express 不幸的是
  • 期望脚本在单独调用时有效,但不能作为盐状态

    我正在尝试通过expect 进行scp 和ssh 操作 如果我直接从终端调用下面的脚本 则它可以工作 usr bin expect myexpect sh但是当我使用 salt 运行它时 第一个 scp 命令在第二个 ssh 失败的地方起作