Linux 在远程服务器中编写交互式用户输入和执行命令的脚本

Linux 在远程服务器中编写交互式用户输入和执行命令的脚本,linux,scripting,Linux,Scripting,我期待着写一个脚本,其中没有以下内容 列表项 当我运行它时,它应该请求服务器条目(linux或AIX) 一旦它被提供,我应该能够登录到它与sudo访问 然后,它应该从特定位置运行命令并显示输出 我在这个网站上找了一整天,但是没有找到满意的答案 希望在这方面得到良好的回应 谢谢 Abhi有几种方法可以做到这一点。正如Leo指出的,您可以使用Tcl/expect。此工具允许您模拟用户并与程序交互,就像您在键盘上一样。您可以为登录客户端提供密码等等。它有点复杂,有时不太可靠。如果您使用ssh登录,根据

我期待着写一个脚本,其中没有以下内容

  • 列表项
  • 当我运行它时,它应该请求服务器条目(linux或AIX)
  • 一旦它被提供,我应该能够登录到它与sudo访问
  • 然后,它应该从特定位置运行命令并显示输出
  • 我在这个网站上找了一整天,但是没有找到满意的答案

    希望在这方面得到良好的回应

    谢谢
    Abhi有几种方法可以做到这一点。正如Leo指出的,您可以使用Tcl/expect。此工具允许您模拟用户并与程序交互,就像您在键盘上一样。您可以为登录客户端提供密码等等。它有点复杂,有时不太可靠。如果您使用ssh登录,根据您的技能,只需使用您最喜欢的shell脚本并使用预先交换的密钥登录可能会更容易。如果在登录系统(运行脚本)的目录中执行
    ls~/.ssh
    ,您可能会看到名为
    id\u rsa.pub
    或类似文件。如果没有,您可以使用
    ssh-keygen
    创建一个。然后在您登录的计算机上创建或编辑文件
    ~/.ssh/authorized_keys
    。将此文件的内容(
    id\u rsa.pub
    )附加到
    授权密钥
    。这应该允许您在没有密码的情况下从另一台计算机登录到该用户(注意:这可能存在安全风险!)。然后,您可以使用命令
    sshuser@dest-C remote_command
    执行您的命令,无需使用
    expect

    您需要一个类似expect的工具,例如expectJ、expect4j、etcor调用命令ssh@julummeexpectJ提供了与Jschor的集成,甚至expect本身(对不起,我的重点是java工具),我正在使用以下格式#/bin/sh#u EPLF=/ngs/lpp/autor11p/SysytemAgent/$\u MNA/cybAgent-vu RPT=
    echo/tmp/“$\u YDT”-stat.RPT”
    echo$\u EPLF$\u YDTecho/tmp/“$\u YDT”-mac RPT.STAclear echo”输入机器名:\c“读取如果echo[-z”$\u MNA清除机器名,则echo没有其他机器名“******************计算机防御详细信息**************”echo=====================================================================================================================/ngs/lpp/auto11p/SysytemAgent/$u/cybAgent-v echo”“echo”“fi”