首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用SSH连接远程主机并执行多个Bash命令最优雅的方法是什么

问题 我已经设置好了ssh代理,我可以用Bash脚本在外部服务器上运行命令,执行以下操作: ssh blah_server "ls; pwd;" 现在,我真正想做的是在外部服务器上运行许多长命令。...将所有这些命令都放在引号之间看起来会很不美观,而且我确实不想为了避开这个问题而多次使用SSH连接。 那么,有没有一种方法可以让我一次性完成这个操作,比如用括号或其他方式来包含所有的命令?...我在寻找类似这样的方法: ssh blah_server ( ls some_folder; ....回答 使用 Here-Document: ssh user@remote_host << EOF 命令1 命令2 命令3 EOF 不过这样执行会有一个问题: 输出信息的开头都有一句提示 "Pseudo-terminal...如果要避免这个提示信息,可以将上述命令的第一行改为 ssh user@remote_host /usr/bin/bash << EOF 朋友们可以拿手上的测试环境试一试。

18410

jenkins构建go及java项目

mee-api(多个,为Java项目)以及gee-api项目(多个,go项目),后台项目暂不集群分布(目前够用), mee-api及gee-api项目只是个模子,主要做分布式或集群微服务,目前只有这三个微服务在跑...纯手工(很麻烦),因为专注于开发目前ci/cd也不复杂,所以就借用了本人之前写的windows自动部署小工具,目测够用,但有一点儿较为麻烦,就是对于纯开发配置较为麻烦,每次运行还是需要配合服务端脚本,同时运行命令也较为复杂...添加go构建 首先说,默认按照插件的方式配置go的构建十分的麻烦(无法下载go sdk以及go项目依赖也无法拉取),当然解决的方式也很简单; go mod无法下载依赖::在window cmd命令中加入对...go env的GOPROXY的设置(同理对于go打包的配置也是一致的) 无法使用go的命令:: 在windows cmd命令行中使用绝对路径调用其命令 以上问题的解决详见下图,具体不做解释...相关脚本 jenkins 执行远程脚本命令 go应用执行脚本 /usr/bin/sh /mnt/sh/deploy_go.sh external-api /mnt/app/gee >/dev/null

56920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DevOps平台

    (注意配置,具体可以点击这里) 3.创建job的时候只支持xml格式,还要转换一下,超级坑(xstream强行转换) 4.docker构建的时候,需要挂载宿主机的docker(想过用远程的,但效率不高)...目前实现了串行化的CICD构建部署,之后考虑实现多个CICD并行,并且一个CICD能够调用另一个CICD,实际运行中,出现了一大堆问题。...分布式构建jenkins x 首先要解决的是多个构建同时运行的问题,很久之前就调研过jenkins x,它必须要使用在kubernetes上,由于当时官方文档不全,而且我们的DevOps项目处于初始期,...在调研了一番云效的东西之后,发现云效也是基于jenkins x改造的,不过阿里毕竟人多,虽然能约莫看出是pipeline的语法,但是阿里彻底改造成了能够使用yaml来与后台交互。...为什么不推荐dind:挂载了宿主机的docker,就可以使用docker ps查看正在运行的容器,也就意味着可以使用docker stop、docker rm来控制宿主机的容器,虽然kubernetes

    1.3K00

    测试开发实战|只需搞定Docker,环境问题再也不是测开路上的坑

    在系统上操作的任何东西都不是直接调用内核的,都需要经过系统调用,使用docker安装了操作系统的镜像软件,感觉像是在操作系统上运行,因此即使用的是Centos镜像,内核也有可能是Ubantu的,如下图所示...search中输入需要搜索的镜像 5 回车后发现搜索出了两万多个Jenkins镜像,我们需要官方的镜像,检查带有Official的就是官方的镜像了 点击进入镜像,会有很多相关文档,右边有安装的命令“...=myjenkins jenkins ,将 jenkins 命名为 myjenkins ,并在后台运行容器,我们会得到一段运行码 3.启动Jenkins服务 端口映射:使用命令 docker run...-d --name myjenkins -p 8080:8080 -p 50000:50000 jenkins 启动Jenkins服务(宿主机端口:容器端口),这段命令的意思是将宿主机以myjenkins...命名在后台运行,并将宿主机的8080端口请求转发到容器的8080端口上; 命令运行后我们访问本地的8080端口: .

    52720

    安全研究 | Jenkins漏洞分析

    可以看到运行POC后,ceye后台已经有了目标主机的访问记录。证明该命令已经在远程主机被执行了。 ?...这种方式允许具有Job/Configure权限的攻击者,以运行Jenkins进程的OS用户的权限在Jenkins主服务器上执行任意系统命令。...而且后台有个地方能直接执行命令,在[http://ip:port/script](http://ip:port/script)下面有脚本命令行,属于Jenkins正常功能,利用这个功能可以执行系统命令,...利用成功后将会在tmp文件夹下创建wtf文件 12、Jenkins功能未授权访问导致的远程命令执行 12.1、漏洞描述 Jenkins管理登陆之后,后台”系统管理”功能,有个”脚本命令行的”功能,它的作用是执行用于管理或故障探测或诊断的任意脚本命令...,利用该功能,可以执行系统命令,该功能实际上Jenkins正常的功能,由于很多管理账号使用了弱口令,或者管理后台存在未授权访问,导致该功能会对Jenkins系统服务器产生比较严重的影响和危害。

    6.1K10

    记录一次docker+jenkins+gitlab搭建内网开发环境

    mkdir /usr/local/var/www/jenkins 安装Jenkins使用的是jenkinsci/blueocean镜像。使用如下命令拉取镜像并创建一个Jenkins容器。...-d 将容器以后台方式运行。 --name 给容器取名。 安装完成之后,直接使用http://192.168.2.103:8080,然后按照操作进行即可。...在第一次访问的时候,需要输入初始密码,默认的初始密码在Jenkins容器里面,我们这里使用了磁盘挂载,便直接操作物理机上的文件就可以了。...http://192.168.2.103:8080/; } } 在实际的过程中,不管是通过ip还是配置的虚拟域名,发现都是无法访问,并且使用telnet、ping命令都是无法进行通讯,还需要做如下配置...docker容器的网络会附属在主机上,两者是互通的。

    3.2K30

    如何在Ubuntu上使用Jenkins自动构建

    Jenkins,您需要授予其用户运行Docker命令的权限: sudo usermod -aG docker jenkins 控制你的后台程序使用非常简单:sudo service jenkins与选择...保护本地工作站与运行Jenkins的远程Linode之间的连接非常重要。您可以使用SSL和反向代理(如Apache或NGINX)或使用V**来实现此目的。...您可以根据需要使用多个阶段,当您在需要“每个阶段”进行详细调试的复杂模型中工作时,这非常有用。 steps:在这里你定义你的行动。一个阶段可以分组许多步骤,每个步骤通常链接到一个特定的任务/命令。...在一个简单的场景中,只有一个顺序执行其阶段的管道足以实现所需的最终状态,但您可以定义管道以在需要时并行运行。有关Jenkins声明性流水线语法的详细信息,请参阅官方文档。...建立阶段 你会注意到关于parallel代码块的第一件事是它不言自明 - 它会并行运行子阶段。这对于使用之前使用的相同shell命令构建两个Docker镜像非常有用。

    8K10

    记一次在Windows10桌面环境搭建Jekins的吐血经历

    踩坑2: 文件上传 程序打包完毕之后,需要上传到远程主机。 在Linux主机之间传输文件通常通过scp命令实现,于是我也想在Windows上使用scp来做这个事情。...但是在执行scp命令时必须输入密码,显然在Jenkins中要实现一键部署时是无法执行输入密码这个动作的,因此就需要实现本地Windows主机与远程Linux主机之间的免密传输。...另外,使用Cygwin提供的sshpass命令明确指定密码也同样不能成功! 显然,如果无法避开手动输入密码这个步骤,是无法在Jenkins中实现一键部署的。 ?...第二,在Windows环境下的Jenkins执行Unix/Linux命令需要使用Git客户端提供的sh.exe环境。...第三,在Windows环境下要实现免输入密码方式的文件传输,只能使用pscp.exe来实现,并且在Jenkins中执行时还必须明确指定端口(-P 22)和远程主机的指纹信息(-hotkey xx:...

    1.9K10

    深入理解 Docker Run 命令:从入门到精通

    前言 在容器化技术的领域中,Docker 无疑是最为广泛使用的工具之一。而 docker run 命令则是使用 Docker 进行容器管理的核心命令之一。...本文将深入探讨 docker run 命令的使用方法,旨在帮助初学者快速入门并掌握该命令的各种用法。 Docker Run 简介 docker run 命令用于在 Docker 中运行一个容器。...其中,OPTIONS 是一系列用于配置容器运行方式的选项,IMAGE 是要运行的容器镜像,COMMAND 是在容器内部执行的命令,ARG 是传递给命令的参数。...tomcat:7 这样运行,会直接将容器运行日志打印出来,所以一般都需要加 -d参数,否则无法继续敲其他命令 使用tomcat7镜像,创建名为tomcat_hogwarts01的容器,并使用-d参数...使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的随机端口,命令如下: docker run -d -P --name tomcat_muller tomcat:7

    4.6K10

    我的shell脚本实战-编写一个系统发布脚本

    平常我们会使用Jenkins发布系统,Jenkins可以从代码更新,编译到发布这样的一条龙服务。操作成本很低,作为程序员,肯定不满足于简单的界面操作。...这个密钥是在主机A中生成的,生成密钥的命令为: ssh-keygen -t rsa 我们在 ~/.ssh目录下就可以找到id_rsa.pub 将id_rsa.pub中的内容拷贝到gitlab中即可...接下来我们在主机A中编译代码,然后将编译好的代码远程分发到不同的主机中,再在这些主机中启动程序。...最后我们启动应用主机的程序即可。 启动系统之前需要将原系统停掉,系统启动脚本在各自的应用系统中。 上图为启应用动脚本这里我们指定了启动的运行环境。...--spring.profiles.active=dev 并且可以退出控制台,实现后台运行。 nohup xxx >/dev/null 2>&1 & 以上一个简单的发布脚本就实现了。

    61020

    不同环境下 Jenkins 调用 shell 脚本管理 docker 容器

    一、生产环境 Jenkins 使用 ssh-copy-id 实现 SSH 无密码登录,实现方式如下: ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的 authorized_keys.../ssh , 和 ~/.ssh/authorized_keys 的权利 第一步:在本地机器上使用 ssh-keygen 产生公钥私钥对 $ ssh-keygen 第二步:用 ssh-copy-id 将公钥复制到远程机器中...9、创建到目标主机的持久化连接 ssh -MNf @ 在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用: Host host ControlPath...13、通过SSH运行复杂的远程shell命令 ssh host -l user $(<cmd.txt) 更具移植性的版本: ssh host -l user “`cat cmd.txt`” 14、通过SSH...ssh-copy-id 命令的*nix变种,这个命令可以将你的公钥复制到远程主机,因此你照样可以实现无密码SSH登录。

    1.6K20

    微服务 day20:项目部署与持续集成(DevOps)

    \ 来标识shell命令的换行,在shell命令过长的情况下使用 \ 换行可以使内容更加清晰 --link:可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信...,实现在宿主机(host machine)上能同时运行多个客户机(guest machine),每个客户机就是一个虚拟机,这些虚拟机高效地分享宿主机的硬件资源。...在服务器(宿主机)上安装操作系统,并安装hypervisor虚拟机管理软件,如VMware、VirtualBox等,由 hypervisor管理多个虚拟机,每个虚拟机上需要安装客户操作系统、依赖库、应用软件...当用户创建自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。...注意,如果在jenkins远程执行的 SSH凭证 非 root 用户,需要在远程服务器上执行以下命令,将当前用户加入到 docker 组内 sudo usermod -aG docker $USER 2

    2.1K40

    Jenkins 配合 Kubernetes 实现服务持续集成的实践和建议

    Jenkins,已经习惯了这种使用方式,Jenkins本身呢,只是执行一些命令,本身不会耗费太多资源,不需要多个副本和横向扩展的能力,把需要持续交付的服务实现容器化再说吧。...再者如果你把 Jenkins 放到 Kubernetes 集群中执行,你需要把 Jenkins 打成镜像,放到 Pod 中执行,而一般情况下根据镜像的最小化原则,镜像里面不会包含 docker 组件,所以如果你在宿主机上打包可以正常执行...,而放到Pod 中可能会出现无法 docker build ,当然这也是可以解决的,因为 docker 本身是 B/S 架构,你可以通过在镜像内部挂载 docker 命令,调用宿主机 docker socket...4、docker 镜像构建、镜像提交到仓库; docker 镜像在构建需要区别与以前的形式,如果你已经在 Jenkins 上安装了 docker 插件,直接在当前机器构建即可,如果没,也没问题,远程 SSH...比较建议每次镜像构建完成之后,通过  Jenkins 配置命令删除没有运行的镜像。 具体根据使用场景处理这些中间产物。

    1.8K20

    【Jenkins】Jenkins集成Android全自动参数化打包专题

    1.3 自动发布脚本 在Windows下使用curl命令 https://www.2cto.com/os/201205/131164.html 使用 Jenkins 插件上传应用到蒲公英 https:...SVN中,而一个SVN往往是有多个项目组在提交代码,而每个项目组又有多人组成,其中每个人也都在对自己的那块代码不停地在进行维护,所以说对于一个公司而言,SVN的提交记录往往是很频繁的,正因为如此,Jenkins...[原]Jenkins(九)---jenkins分别发布多个项目到多个远程主机 [原]Jenkins(十)---jenkins注册管理员admin并赋所有权限给admin [原]Jenkins(十一)-...--jenkins使用管理员admin创建用户和分配权限 [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied [原]Jenkins(十三)---jenkins...https://www.cnblogs.com/jsonhc/p/7372359.html [原]Jenkins(九)---jenkins分别发布多个项目到多个远程主机 https://www.cnblogs.com

    44430

    『Jenkins』Jenkins与Git的集成与自动化部署

    测试:在构建后自动运行单元测试和集成测试。打包:构建成功后生成可部署的Jar包。部署:将构建的Jar包部署到远程服务器。通知:构建和部署完成后,通过Slack或邮件发送通知。...c. stagesstages部分定义了Pipeline的各个阶段。在每个阶段内,您可以定义一个或多个步骤(steps),这些步骤执行具体的命令或脚本。...Build:在构建阶段,Jenkins会执行mvn clean install命令,构建Maven项目。Test:在测试阶段,Jenkins会执行mvn test命令,运行单元测试。...这里使用scp命令将Jar包拷贝到远程部署服务器。Notify:在构建和部署完成后,Jenkins通过Slack发送通知,告知团队构建和部署状态。...使用并行执行提高效率如果项目中包含多个独立的构建或测试任务,您可以使用并行执行来提高效率。

    15610

    在 ubuntu 中愉快的安装 Jenkins

    安装前的准备 一台 ubuntu 主机(本篇文章使用的是 Ubuntu Server 16.04.1 LTS) 安装教程 远程连接 ubuntu 的软件 WinSCP,PuTTY 下载使用 如果你恰好是腾讯云的...su root 切换用户 现在可以使用 root 但是无法远程连接,还需要设置/etc/ssh/sshd_config中 PermitRootLogin 的值为 yes 设置后记得重启 ssh 服务...:查看系统版本 ifconfig:查看 IP 等信息 ps:显示正在运行中的进程的信息 学习更多 vim 常用的几个命令: i:输入模式(使用 vim 打开文件后先按一些 i,然后再移动光标输入字符...echo y|sudo apt-get install jenkins Jenkins的运行 Jenkins 是以服务的形式运行的,故可使用如下民两个管理服务,默认使用 8080 端口 启动服务:sudo...8080 开放指定端口 ps:在腾讯云的主机中默认防火墙是关闭的(sudo ufw status查看) Jenkins的配置 至此,可以通过 http://ip:8080 访问 Jenkins 了,

    1.8K10

    Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本

    举例来说,如果你有多个Windows系统的构建节点并且你的Job也需要在Windows系统上运行,那么你可以配置所有的Windows系统节点都标记为'windows', 然后把Job也标记为'windows...在这种模式下,Jenkins会尽可能的使用这个节点.任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它. 2)只允许运行绑定到这台机器的Job 这种模式下,Jenkins只会构建哪些分配到这台机器的...这允许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行....当master可以在salve上远程执行一个进程,比如通过ssh/rsh,可以使用这个。...构建时,会自动执行远程主机(192.168.30.174)上的python项目脚本 附pdf版下载地址: 为Jenkins添加Windows Slave远程执行python项目脚本.pdf

    2.5K30

    喝杯咖啡,一键部署完成!(建议收藏)

    比如拉取 Gitlab 仓库代码的插件、远程执行命令和拷贝文件的插件。 Jenkins 开始运行一个任务时,通过 Git 插件从 Gitlab 仓库拉取代码到本地目录。...Jenkins 将 JAR 包拷贝到远程服务器的固定目录下。 Jenkins 执行远程命令,更新服务。...通过 Jenkins 一键部署 在使用 Jenkins 时,我们必须创建一个任务才行,然后这个任务里面可以配置要执行的各种操作。...拷贝多个 JAR 包到远程服务器 滚动更新服务 项目采用的 Docker Swarm 方式来管理集群中的微服务。...nohup 命令用于将脚本在后台运行,即使终端会话结束,脚本仍然继续运行。 远程服务器上创建脚本 如果想要 jenkins 执行远程服务器上的脚本,则需要先在远程服务器上创建一个可执行的脚本。

    36410

    2021年排名前85的DevOps面试问答

    然后使用以下命令将其提交到远程存储库: git commit –m“ commit message” 创建一个新的提交,以撤消在错误的提交中所做的所有更改。...38.在詹金斯计划/运行构建的方式有哪些? 通过源代码管理提交。 其他版本完成后。 计划在指定时间运行。 手动构建请求。 39.您可以使用哪些命令手动重新启动Jenkins?...引擎中 缩放比例 难以扩大规模 易于扩展 效率 效率低 高效率 可移植性 跨不同平台移植时的兼容性问题 轻松跨平台移植 空间分配 数据量无法共享 数据量在多个容器之间共享并再次使用 64.我们如何与不同的节点共享...示例: 暴露8080 发布 发布在Docker运行命令中使用。 可以在Docker环境之外使用。 它用于将主机端口映射到正在运行的容器端口。...您可以监视远程计算机指标(磁盘使用情况,CPU负载等) 该 check_npre 插件驻留在本地监控机上 在远程Linux / Unix计算机上运行的 NPRE守护程序 77.

    6.8K30

    『Jenkins』Jenkins与Docker集成:构建、测试与部署自动化流程

    Docker则提供了一种轻量级的容器化解决方案,能够在各个环境中一致地运行应用程序。将Jenkins与Docker结合使用,能够极大地提升开发和运维的效率,特别是在构建、测试和部署流程中。...通过使用Docker容器,我们可以确保每次构建和测试的环境都是一致的,从而减少了“在我电脑上可以运行”的问题。此外,使用Docker进行部署也能提升生产环境中的稳定性和可维护性。...Build阶段:使用docker build命令构建Docker镜像。Test阶段:运行Docker容器并执行自动化测试命令。...} failure { echo 'Deployment failed.' } }}在Deploy阶段,我们通过docker run命令在远程服务器上启动新的...在Jenkinsfile中定义流水线步骤,实现自动化构建、测试和部署。配置Docker主机和远程部署,确保生产环境能够快速接收新版本。

    29410
    领券