bash - 从本地计算机运行远程脚本

2023-12-19

我试过这个:

#!bin/bash
ssh [email protected] /cdn-cgi/l/email-protection  'sudo /etc/init.d/script restart'

但我收到这个错误:

sudo: no tty present and no askpass program specified

我怎样才能运行该脚本?现在,当我需要运行该脚本时,我会执行以下步骤:

ssh [email protected] /cdn-cgi/l/email-protection
sudo /etc/init.d/script restart

但我不想一直手动登录远程服务器,然后输入重新启动命令。

我可以编写可以运行的本地脚本,这样我只需要输入密码,它就会运行远程脚本并重新启动进程吗?


您可以使用-t选项中ssh命令到附加一个伪 tty和你的ssh命令:

ssh -t -t [email protected] /cdn-cgi/l/email-protection 'sudo /etc/init.d/script restart'

As per man ssh:

-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

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

bash - 从本地计算机运行远程脚本 的相关文章

  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • 从 shell 脚本导入函数

    我有一个 shell 脚本 我想用 shUnit 测试它 该脚本 以及所有函数 位于单个文件中 因为它使安装更加容易 示例script sh bin sh foo bar code 我想编写第二个文件 不需要分发和安装 来测试中定义的函数s
  • 无法让 ASCII 艺术回显到控制台

    我是 Bash 脚本新手 这让我感到困惑 我正在将 ASCII 艺术添加到项目中 但似乎无法弄清楚如何转义某些字符 有人可以帮我让下面的代码正常工作吗 每当我尝试添加斜杠作为转义字符来修复错误时 斜杠也会在执行时打印到控制台 这破坏了形象
  • cat/Xargs/命令 VS for/bash/命令

    Linux 101 Hacks 一书的第 38 页建议 cat url list txt xargs wget c 我通常这样做 for i in cat url list txt do wget c i done 除了长度之外 还有什么东
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • Bash:替换管道标准输入中的子字符串

    我尝试用新的子字符串替换标准输入中的某个子字符串 在读取几个文件后 我必须从管道获取标准输入cat 然后我想将更改后的字符串向前推到管道中 这是我尝试做的 cat file1 file2 echo cat path to file path
  • git 可以知道你当前的分支是从哪个分支分支出来的吗?

    我想创建一个 git 别名 让我可以从其分支的原始分支同步我的分支 例如 如果我从
  • 在 sed 中插入换行符 (Mac OS X)

    如何在 sed 的替换部分插入换行符 此代码不起作用 sed s 1234 n 1 g input txt gt output txt 其中 input txt 是 test1234foo123bar1234 和output txt应该是
  • Bash 脚本错误 [重复]

    这个问题在这里已经有答案了 我想知道下面的脚本有什么错误 我收到错误为 command not foundh line 1 command not foundh line 2 其连续的 我试过添加 但现在工作请告诉我该怎么做 bin bas
  • 使用数组参数创建 bash 选择菜单

    我有一个函数叫做createmenu 该函数将接受一个数组作为第一个参数 第二个参数是数组的大小 然后我想使用该数组的元素创建一个选择菜单 这是我到目前为止所拥有的 使用给定数组创建菜单 createmenu echo 1 echo Siz
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • Github 操作 - 错误:进程已完成,退出代码为 1

    我正在尝试设置 github 操作来部署我的应用程序 My bash 启动部署过程的脚本如下所示 bin sh set e vendor bin phpunit git push true git checkout production g
  • 仅为我自己禁用和重新启用地址空间布局随机化

    我想在我的系统 Ubuntu Gnu Linux 2 6 32 41 server 上禁用地址空间布局随机化 ASLR 但是 如果我使用 sysctl w kernel randomize va space 0 我认为这一更改将影响系统上的
  • k8s CronJob 在 pod 列表上循环

    我想在特定命名空间中的 pod 上运行循环 但诀窍是在 cronJob 中执行此操作 是否可以内联 kubectl get pods n foo 这里的技巧是在你获得 Pod 列表后 我需要循环并在 15 秒的超时时间内将每个 Pod 删除
  • 为什么 ls -l 中的“总计”加起来不等于列出的总文件大小? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么是total在输出中ls l打印为64并不是26078列出的所有文件的总数是多少 ls l test ls total 64 rw
  • Bash脚本无法执行Go命令

    我正在尝试编写一个 bash 脚本来自动在不同的目录中运行 go get install 相关部分在这里 cd web go get cd web go install cd services go get cd services go i
  • 如何将文本文件中的变量获取到 Bash 变量中

    简单的问题 在 BASH 中 我试图读取 pid 文件来终止进程 如何将该文件读入变量 我发现的所有示例都试图以多行方式阅读 我只想读取仅包含 PID 的一个文件 bin sh PIDFile var run app to kill pid
  • Linux 从设备本身运行的脚本卸载设备

    我在路径中安装了一个 iso 映像 mnt iso 在这个 iso 中我有一个安装脚本 install sh 我从 iso 运行安装脚本 最后脚本询问用户是否要卸载 iso 本身 如果用户按 y 脚本将执行以下代码 cd umount mn

随机推荐