XShell批量发送命令至多个会话

  • 适用场景

近期有个每周批量重启服务的需求,因为涉及的服务器节点有十几个,并且要区分主节点和子节点,每次都要挨个提交一遍重启命令(关闭服务需要先执行子节点,再执行主节点;启动服务反之),繁琐且耗时。遂发现XShell支持[快速命令]执行[到当前会话]、[当前标签组]、[全部会话],高效解决该问题。

  • 解决方案

使用过程发现XShel5和XShell6版本有细微差别,我们以XShell6为例,区别最下面会做说明:

1、首先,需要打开XShell的[快速命令栏]:查看—快速命令—快速命令栏

XShell批量发送命令至多个会话_第1张图片

2、 在[快速命令栏]添加快速命令按钮:点击左下角—快速命令栏菜单—添加按钮,或者直接在上面[快速命令栏]上面双击

XShell批量发送命令至多个会话_第2张图片

3、编辑快速命令按钮:填写[标签]及[字串],操作类型为[发送字符串],这里的[标签]即命令描述,[字串]是要执行的命令,输入完[字串]后,为了后续点击按钮能直接发送命令并执行,需要回车一下(回车直接执行)

XShell批量发送命令至多个会话_第3张图片

4、添加完快速命令按钮后,我们复制几个会话进行测试:在[快速命令]按钮—右键—执行—全部会话,会发现所有窗口都执行了该命令;或者执行-当前标签组,会执行命令到当前标签组

XShell批量发送命令至多个会话_第4张图片

5、如下图,当前标签组会话都执行了该命令

XShell批量发送命令至多个会话_第5张图片

6、对应需要单独执行命令的会话,可以向左下方拖动会话标签,脱离当前标签组,这样可以区分会话执行命令

XShell批量发送命令至多个会话_第6张图片

7、脱离当前标签组后,可以单独发送命令互不影响

XShell批量发送命令至多个会话_第7张图片 

  • XShell6和XShell5的区别,XShell5版本,需要打开“撰写”—“撰写栏”

XShell批量发送命令至多个会话_第8张图片

 具体“快速命令栏”按钮,需要发送至当前标签组还是当前会话,需要在“撰写”栏进行选择

XShell批量发送命令至多个会话_第9张图片

你可能感兴趣的