2017-07-20 181 views
0

我想编写一个Linux shell脚本来运行client.sh程序来打开一个JBoss Fuse shell,然后依次运行命令如“container-stop” JBoss Fuse shell并最终从JBoss Fuse shell退出。什么是完成这个最好的方法?在JBoss Fuse shell中运行命令的Linux shell脚本

问候。

+0

可能重复[什么是在Bash中ssh和运行多个命令的最简洁的方法?](https://stackoverflow.com/questions/4412238/what-is-the-cleanest-way-to-ssh-and -run-multiple-commands-in-bash) –

+1

这个问题很像是重复的,因为'client.sh'基本上建立了一个到运行实例的SSH连接。只需使用shell中的普通ssh客户端并发送您喜欢的任何命令即可。 –

回答

0

,你需要执行的命令如下:

./client -r 3 -d 2 -u admin -p admin 'container-stop my-container' 

这个例子将认证和将要执行的期望的命令的单个步骤。 参数-u-p用户名密码。有几个可选参数,如-r用于在发生错误时重试,并且-d用于延迟。你可以省略它们。

如果像重新启动单个Fabric环境那样执行的命令很少,那么可能会将它作为bash脚本编写。

但是如果您需要灵活,集中,能够同时在多种环境下运行,通用,便携等,那么我认为您最好使用一些自动化系统。它会在以后付清。在这种情况下,我建议你看看Ansible,因为它很轻量级,并且很容易为它编写脚本。这是您安装在单台计算机上的应用程序。从那里你可以SSH进入远程机器并执行特定的任务。这些说明必须在一个简单的Ansible脚本中提供,称为playbook。您也可以拥有多个目标主机,并且可以同时执行任意数量的任务。