shell脚本-linux如何在脚本中远程到一台linux机器并执行命令

avatar
作者
猴君
阅读量:0

需求:我们需要从11.0.1.17远程到11.0.1.16上执行命令

实现:

1.让11.0.1.17 可以免密登录到11.0.1.16

[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):  Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase):  Enter same passphrase again:  Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:bu287XmVZ6enpUciggpz71Q7e5kfKYqVMTcM5bDD8eU root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ |          o . .  | |         . B o   | |          = o E  | |           +     | |        S.+ +   .| |    o ...o.*...o*| |     + o+ *..+o*+| |      .o.= =+oo+o| |       .o *++o++ | +----[SHA256]-----+  [root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub root@11.0.1.16 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub" The authenticity of host '11.0.1.16 (11.0.1.16)' can't be established. ECDSA key fingerprint is SHA256:Zedce2a7sFWF3pYJaVtedqST+SsG1zbPZ7Y4rGiEpB0. ECDSA key fingerprint is MD5:57:75:f6:6f:68:ba:b2:b8:38:0f:55:96:c9:19:d6:29. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@11.0.1.16's password:   Number of key(s) added: 1  Now try logging into the machine, with:   "ssh 'root@11.0.1.16'" and check to make sure that only the key(s) you wanted were added.   

2.在脚本中实现我们想要的功能

[root@localhost ~]# cat test.sh  #!/bin/bash ssh root@11.0.1.16 <<remotessh mkdir test ls -la test ifconfig exit remotessh   [root@localhost ~]# sh test.sh  Pseudo-terminal will not be allocated because stdin is not a terminal. 总用量 4 drwxr-xr-x  2 root root    6 7月  15 09:38 . dr-xr-x---. 8 root root 4096 7月  15 09:38 .. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 11.0.1.16  netmask 255.255.255.0  broadcast 11.0.1.255         inet6 fe80::20c:29ff:fe00:9681  prefixlen 64  scopeid 0x20<link>         ether 00:0c:29:00:96:81  txqueuelen 1000  (Ethernet)         RX packets 95760  bytes 67679836 (64.5 MiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 45061  bytes 3990000 (3.8 MiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         inet6 ::1  prefixlen 128  scopeid 0x10<host>         loop  txqueuelen 1  (Local Loopback)         RX packets 24  bytes 2547 (2.4 KiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 24  bytes 2547 (2.4 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!