ssh远程执行命令方法和Shell脚本实例

 更新时间:2015年04月16日 10:59:41   投稿:junjie  
这篇文章主要介绍了ssh远程执行命令方法和Shell脚本实例,本文讲解了ssh执行远程操作方法和远程执行命令shell脚本示例,需要的朋友可以参考下

写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!!

ssh执行远程操作
命令格式

复制代码 代码如下:

ssh -p $port $user@$p 'cmd' 
 
$port : ssh连接端口号 
$user: ssh连接用户名 
$ip:ssh连接的ip地址 
cmd:远程服务器需要执行的操作 

准备工作

基于公私钥认证或者用户名密码认证能确保登录到远程local2服务器(有点基本运维知识的人做这个事情都不是问题)
cmd如果是脚本,注意绝对路径问题(相对路径在远程执行时就是坑)

不足

这个命令可以满足我们大多数的需求,但是通常运维部署很多东西的时候需要root权限,但是有几处限制:
远程服务器local2禁止root用户登录
在远程服务器脚本里转换身份用expect需要send密码,这样不够安全

ssh的-t参数

复制代码 代码如下:

-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty. 

中文翻译一下:就是可以提供一个远程服务器的虚拟tty终端,加上这个参数我们就可以在远程服务器的虚拟终端上输入自己的提权密码了,非常安全
命令格式

复制代码 代码如下:

ssh -t -p $port $user@$ip  'cmd' 

示例脚本

复制代码 代码如下:

#!/bin/bash 
 
#变量定义 
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3") 
user="test1" 
remote_cmd="/home/test/1.sh" 
 
#本地通过ssh执行远程服务器的脚本 
for ip in ${ip_array[*]} 
do 
    if [ $ip = "192.168.1.1" ]; then 
        port="7777" 
    else 
        port="22" 
    fi 
    ssh -t -p $port $user@$ip "remote_cmd" 
done 

这个方法还是很方便的,-t虚拟出一个远程服务器的终端,在多台服务器同时部署时确实节约了不少时间啊!

相关文章

  • 如何正确使用Linux命令–du

    如何正确使用Linux命令–du

    这篇文章主要为大家详细介绍了如何正确使用Linux命令–du,具有一定的实用性,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Linux磁盘空间被未知资源耗尽的解决方法

    Linux磁盘空间被未知资源耗尽的解决方法

    下面小编就为大家带来一篇Linux磁盘空间被未知资源耗尽的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • shell 基本计算、逻辑运算、位运算详解

    shell 基本计算、逻辑运算、位运算详解

    Shell 提供大量的基本运算操作,在脚本中非常有用。Shell 对您提供的算术表达式求值,执行运算展开式,此时使用得出的结果替换表达式
    2012-09-09
  • Linux 日常常用指令及应用小结

    Linux 日常常用指令及应用小结

    最近在学习一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了
    2017-08-08
  • Shell中字符串排序的几种方法

    Shell中字符串排序的几种方法

    今天小编就为大家分享一篇关于Shell中字符串排序的几种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Centos下查看网卡的实时流量命令

    Centos下查看网卡的实时流量命令

    本文介绍了linux下查看网卡流量的六种方法,linux系统中使用nload、iftop、iostat等工具查看网卡流量,这里我们先来详细讲解下 iptraf 方法,需要的朋友参考下。
    2015-05-05
  • Shell字符串截取的详细方法

    Shell字符串截取的详细方法

    这篇文章主要介绍了Shell字符串截取的详细方法,如截取指定字数、按指定的字符串截取、按指定要求分割,需要的朋友可以参考下
    2014-03-03
  • 详解shell脚本的编写规范

    详解shell脚本的编写规范

    这篇文章主要介绍了编写shell脚本的规范,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 3000字扫盲shell基础知识(新手必备)

    3000字扫盲shell基础知识(新手必备)

    这篇文章主要介绍了3000字扫盲shell基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-06-06
  • ./ 和 sh 的使用区别详解

    ./ 和 sh 的使用区别详解

    这篇文章主要介绍了./ 和 sh 的使用区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论