Linux系统shell脚本之Expect实现SSH免交互执行命令

Posted 江湖有缘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统shell脚本之Expect实现SSH免交互执行命令相关的知识,希望对你有一定的参考价值。

Linux系统shell脚本之Expect实现SSH免交互执行命令

一、Expect介绍

Expect是一个自动交互式应用程序的工具,如telnet,ftp,passwd等。

二、安装expect软件包

yum -y install expect

三、编写expect脚本

root@192 scripts]# cat expect_ssh.sh 
#!/bin/bash
########################################
#Author:jeven
#time:Thu 12 May 2022 05:20:05 PM CST
#filename:expect_ssh.sh
#Script description:
########################################


USER=root
PASS=123456
IP=192.168.3.211
expect -c "
    spawn ssh $USER@$IP
        expect 
	    \\"(yes/no)\\" send \\"yes\\r\\"; exp_continue
	    \\"password:\\" send \\"$PASS\\r\\"; exp_continue  
	    \\"$USER@*\\" send \\"df -h\\r exit\\r\\"; exp_continue
	"

四、执行脚本

[root@192 scripts]# ./expect_ssh.sh 
spawn ssh root@192.168.3.211
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu May 12 17:56:29 2022 from 192.168.3.84
[root@node1 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               970M     0  970M   0% /dev
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  984M  9.4M  974M   1% /run
tmpfs                  984M     0  984M   0% /sys/fs/cgroup
/dev/nvme0n1p3          18G   11G  7.3G  59% /
/dev/sdb3              2.0G   47M  2.0G   3% /mnt/vdb3
/dev/mapper/vg01-lv01  7.0G   83M  7.0G   2% /mnt/lv01
/dev/mapper/vg02-lv02  575M  912K  532M   1% /mnt/lv02
/dev/nvme0n1p1         495M  140M  356M  29% /boot
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/8c7e59c24a0b2648c82f41eeddba522e58e06c6809ff702f641f6377b60e8d1f/merged
overlay                 18G   11G  7.3G  59% /var/lib/docker/overlay2/3851b60316c4c9b3d888c4e6133589bee2882b3e231cf2c4d9ff42eca7a4a390/merged
tmpfs                  197M  4.0K  197M   1% /run/user/0
[root@node1 ~]#  exit
logout
Connection to 192.168.3.211 closed.

以上是关于Linux系统shell脚本之Expect实现SSH免交互执行命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux之expect命令

Shell编程之expect免交互

Shell脚本之Expect免交互

shell之expect应答语句(用shell脚本实现获取批量主机存活信息)

shell之expect应答语句(用shell脚本实现获取批量主机存活信息)

shell之expect应答语句(用shell脚本实现获取批量主机存活信息)