Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2077|回复: 7

[Shell] rsh介绍 - 远程shell命令的执行 [复制链接]

Rank: 8Rank: 8

发表于 2012-11-17 17:45:20 |显示全部楼层
rsh
目录
rsh简介 rsh配置过程 rsh 命令行参数 展开rsh简介 rsh配置过程 rsh 命令行参数 展开


编辑本段rsh简介rsh 的介绍  rsh是“remote shell”(远程 shell)的缩写,该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令;如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。 rsh 的格式  rsh命令的一般格式是:
  rsh [-Kdnx] [-k realm] [-l username] host [command] 一般常用的格式  rsh host [command ]
  command可以是从shell提示符下键人的任何Linux命令。 rsh命令中各选项的含义如下  -K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的主机连接时才使用。
  -d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息,请查阅setsockopt的联机帮助
  -k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
  -l 缺省情况下,远程用户名与本地用户名相同。本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。
  -n 重定向来自特殊设备/dev/null的输入。
  -x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。 Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了,rsh也就终止了。
编辑本段rsh配置过程安装前准备  主机ahost ip 192.168.200.123
  配置其/etc/hosts 文件
  
127.0.0.1 ahost localhost192.168.200.200 bhost
配置其/etc/sysconfig/network
  
NETWORKING=yesHOSTNAME=ahost
主机bhost ip 192.168.200.200
  
127.0.0.1 bhost localhost192.168.200.123 ahost
配置其/etc/hosts文件
  配置其/etc/sysconfig/network
  
NETWORKING=yesHOSTNAME=bhost
确认机器ahost是否安装rsh包:  [root@ahost]# rpm -aq |grep rsh
  rsh-0.17-14
  rsh-server-0.17-14
  如果没有安装以上两个包,请找到相关软件安装(如果是LINUX,可以从安装碟中找到)
  安装包:
  rpm -ivh rsh-0.17-5 (linux操作系统)
  rpm -ivh rsh-server-0.17-5 (linux 操作系统) 确认是否启动rsh 服务:  方法一:
  使用命令setup,查看service是否将
  • rsh 加上*,如果加上*表示可以启动。
      /etc/rc.d/init.d/xinetd restart 或者service xinetd restart
      方法二:
      rsh 属于xinetd服务,可以直接修改/etc/xinetd.d/rsh脚本文件
      service shell
      {
      disable = no
      socket_type = stream
      wait = no
      user = root
      log_on_success += USERID
      log_on_failure += USERID
      server = /usr/sbin/in.rshd
      }
      当然方法很多,目的就是使用rsh服务能启动。
      /etc/rc.d/init.d/xinetd restart
      检查是否启动: rsh server 监听和TCP 是514。
      [root@mg04 root]# netstat -an |grep 514
      tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
      如果能看到514在监听说明服务器已经启动。 配置rsh server:  修改/etc/securetty文件: echo rsh >>/etc/securetty
      或者 echo “rsh”>>/etc/securetty都可以
      如果打算用root作为rsh用户的话:
      先用root登录到机器ahost中进行以下操作:
      cd ~/
      echo "192.168.200.200 root" >>.rhosts 允许192.168.200.200 以root访问
      主要作用是使得bhost来的主机可以不用输入用户名和密码就可以登录
      重启rsh server. 测试和注意的问题:  登录到bhost机器进行测试: rsh -l root ahost ps -ef
      看是否能看到结果。如果看到
      [root@mg04 etc]# rsh -l root ahost ps -ef
      Permission denied.
      这是由于权权限问题,一般是由于.rhosts没有配置正确。.rhosts一般位于
      rsh server服务器相对应账号目录下比如root(与.bash_profile在同一目录)
      rsh在执行命令有时会找不到。rsh 在调用命令是最好使用绝对路径。默认搜索路径为:
      [root@mg04 etc]# rsh -l root 192.168.200.123 env |grep PATH
      PATH=/usr/bin:/bin
      rh8.0下rcp的用法设置
      只对root用户生效
      1、在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的/etc/hosts文件中加入对方的IP和hostname
      2、把rsh服务启动起来,redhat默认是不启动的。方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行:service xinetd restart即可。
      3、到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty .so一行用“#”封掉即可
    编辑本段rsh 命令行参数rsh 的命令  在运行 RSH 服务的远程计算机上运行命令。Windows XP 和 Windows 2000 不提供 RSH 服务。Windows 2000 Server Resource Kit 提供名为 Rshsvc.exe 的 RSH 服务。使用不带参数的 rsh 显示帮助。
      语法
      rsh [Host] [-l UserName] [-n] [Command]
      参数
      Host
      指定运行 command 的远程计算机。
      -l UserName
      指定远程计算机上使用的用户名。在省略情况下,使用当前登录用户的名称。
      -n
      将 rsh 的输入重定向到 NULL 设备。这防止本地计算机命令结果的显示。
      Command
      指定要运行的命令。
      /?
      在命令提示符显示帮助。 rsh 的注释  注释
      标准操作
      rsh 命令将标准输入复制到远程 command,将远程 command 的标准输出复制到其标准输出,将远程 command 的标准错误复制到其标准错误。Rsh 通常在远程命令终止时终止。
      使用重定向符号
      为了使重定向在远程计算机上发生,要以引号引住重定向符号(例如 ">>")。如果不使用引号,重定向会在本地计算机发生。例如,以下命令将远程文件“RemoteFile”附加到本地文件“LocalFile”中:
      rsh othercomputer cat remotefile >> localfile
      以下命令将远程文件 Remotefile 附加到远程文件 otherremotefile 中:
      rsh othercomputer cat remotefile ">>" otherremotefile
      使用 rsh
      在使用已登录到某个域并且运行 Windows XP Professional 的计算机时,该域的主域控制器必须可用于确认用户名或 rsh 命令失败。
      .rhosts 文件
      .rhosts 文件通常许可 UNIX 系统的网络访问权限。.rhosts 文件列出可以访问远程计算机的计算机名及关联的登录名。在正确配置了 .rhosts 文件的远程计算机上运行 rcp、rexec 或 rsh 命令时,您不必提供远程计算机的登录和密码信息。
      .rhosts 文件是一个文本文件,该文件中每一行为一个条目,条目由本地计算机名、本地用户名和有关该条目的所有注释组成。每个条目均由制表符或空格分开,注释用符号 (#) 打头。例如:
      host7 #This computer is in room 31A
      .rhosts 文件必须在远程计算机的用户主目录中。有关远程计算机 .rhosts 文件特定执行的详细信息,请参阅远程系统的文档。
      只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
      范例
      要以名称 admin1 在远程计算机 vax1 上执行 telcon 命令,请键入:
      rsh vax1 -l admin1 telcon
      Tftp
      向运行平凡文件传输协议 (TFTP) 服务或 daemon 的远程计算机(尤其是运行 UNIX 的计算机)传输文件或从运行平凡文件传输协议 (TFTP) 服务或 daemon 的远程计算机(尤其是运行 UNIX 的计算机)传输文件。
      语法
      tftp [-i] [Host] [{get | put}] [Source] [Destination]
      参数
      -i
      指定二进制图像传送模式(也称为八进制模式)。在二进制图像模式下,文件以一个字节为单位进行传输。在传送二进制文件时使用该模式。如果省略了 -i,文件将以 ASCII 模式传送。这是默认的传送模式。该模式将行尾 (EOL) 字符转换为指定计算机的适当格式。传送文本文件时使用该模式。如果文件传送成功,将显示数据传输率。
      Host
      指定本地或远程计算机。
      put
      将本地计算机上的 Destination 文件传送到远程计算机上的 Source 文件。因为 TFTP 协议不支持用户身份验证,所以用户必须登录到远程计算机,同时文件在远程计算机上必须可写。
      get
      将远程计算机上的 Destination 文件传送到本地计算机上的 Source 文件。
      Source
      指定要传送的文件。
      Destination
      指定将文件传送到的位置。如果省略了 Destination,将假定它与 Source 同名。
      /?
      在命令提示符显示帮助。
      注释
      使用 get 参数
      如果将本地计算机上的文件 FileTwo 传送到远程计算机上的文件 FileOne,则指定 put。如果将远程计算机上的文件 FileTwo 传送到远程计算机上的文件 FileOne,则指定 get。
      Windows XP 或 Windows 2000 不提供一般用途的 TFTP 服务器。Windows 2000 提供的 TFTP 服务器服务只为 Windows XP 和 Windows 2000 客户端计算机提供远程引导功能。
      只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
      范例
      要从本地计算机将文件 Users.txt 传送到远程计算机 vax1 上的 Users19.txt,请键入:
      tftp vax1 put users.txt users19.txt

    注:信息来自与百度
  • 使用道具 举报

    Rank: 8Rank: 8

    发表于 2012-11-17 17:52:45 |显示全部楼层
    rsh是一个非常好用的东东,它可以让你的网络项目架构变得非常简单。这里举个例子

    我们有100架Linux环境的测试机,每一架都需要用链接数据库取得需要的信息,想想看你会怎么架构?

    1. 写一个连接数据库的shell程序放在server上,每个测试机去调用这个程序
       (这样确实做到了只需要写一次程序,以后也只要维护唯一的程序文件,但是执行是个问题,因为执行是在每台测试机上面执行的,这就需要在每台测试机上安装数据库的driver,这是个头痛的问题)


    2. 在一台server上装数据库driver,再写一个链接数据库的shell程序放在server上,每个测试机通过rsh执行远程server上的shell程序并获得所需要的信息,因为rsh是linux,unix默认的程序,所以不需要对任何测试机进行额外程序的安装或者维护

    使用道具 举报

    Rank: 3Rank: 3

    发表于 2013-11-13 01:36:40 |显示全部楼层
    好帖要顶,楼主的头像还是不错滴

    使用道具 举报

    Rank: 3Rank: 3

    发表于 2014-3-11 04:38:51 |显示全部楼层
    好帖要顶,楼主的头像还是不错滴

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|IC Test Forum Inc.

    GMT+8, 2019-1-18 01:25 , Processed in 0.547435 second(s), 12 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部