shell脚本ssh读取端口和IP(shell脚本读写串口)
本地shell脚本中ssh到远程服务器并执行命令
在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式
1、首先配置ssh免密操作
Linux 下实现SSH互信:
2、简单命令
ssh root@192.168.1.1 "cd /var/lib; ls; cd "
2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行
2.2 分号是将两条语句间隔开
2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去
3、多条命令
? ? ?ssh root@192.168.1.1 reallssh
? ? ? cd /var/lib/test
? ? ? tar -zxvf api.com.tar.gz
? ? ? ......
? ? ? exit
? ? ? reallssh
3.1 命令写在 ?reallssh(开始) 至 reallssh(结束) 之间
3.2?reallssh可自己定义为其他形式
3.3 在结束前加上exit退出远程
4、可能遇到的问题
问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误
解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。
所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。
to force pseudo-tty allocation even if stdin isn’t a terminal.
参考样例如下:
ssh -t -t?user1@192.168.1.1 -p 22
--------------------------------------------------------------------------------
参考:
那个xshell 怎么设置ssh 访问10822 端口
如图,在端口号那一栏改为10822 ,前面的主机那一栏记得改为你自己要连接的那台机器的IP
如何用shell脚本实现SSH的远程登录
要带跳过输入密码的环节么?
如果你想每次链接的时候自己手动输入密码,那就参考这样写
#!/bin/bash
ip=$1
ssh 用户名@ip地址 -p端口号
保存后给执行权限,运行时在脚本后面直接跟一个IP地址
如果你想每次链接的时候自动跳过输入密码的环境,那就再百度下“ssh建立信任关系”,脚本依然还是这个脚本,只是登陆的时候做了互相信任的话,就不需要密码了
在LINUX系统下,如何使用SHell脚本,SSH登陆上路由器?
1.登陆linux系统,打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装
2.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装
3、安装好了之后,就开启ssh服务。Ssh服务一般叫做 SSHD
4、命令行输入 service sshd start 可以启动 或者使用 /etc/init.d/sshd start
5、输入:ssh 账号@IP地址即可。
比如:ssh oracle@192.168.10.13
然后按照提示输入密码. 一切无误则进入该远程主机.
首先你用ssh-keygen生成公钥/私钥对,拷贝到路由器上。这样就可以免密码登录。
然后你写个脚本,用here文档来登录路由器,并进行操作。
ssh 用户名@IP SSH
#这里写你需要的操作
SSH
shell脚本通过ssh登录到服务器进行操作
呵呵,这个问题有意思。 仔细想想,是本地环境和服务器环境的区别。你的脚本是存放在本地的,当你执行第一句的时候,已经转化为服务器的一个中断,享用的是服务器的环境。是看不到你本地的脚本的。