批处理文件到telnet并在unix服务器上运行命令

时间:2013-01-31 12:42:17

标签: file unix batch-file telnet

我被困在这里,我真的可以使用你的帮助。这是我的情况。

我期待创建一个可以使用telnet访问unix服务器的批处理脚本。这里unix服务器会询问用户名/密码。在对用户进行身份验证之后,我想在一些特定文件上执行某些操作,例如chown。

以下是我要做的事情:

    telnet
    open xyz.abc.com
    username
    password

    command 1
    command 2
    command 3
    exit 

其中

xyz.abc.com is the unix server where i want to connect.
username and password are the credentials to access this server 
command 1,command 2,command 3 are the commands i want to run in the server.

我的问题是我无法使用SSH。 它应该从文件中获取所有数据,而不是提示用户输入数据,并且应该作为自动脚本运行。

2 个答案:

答案 0 :(得分:2)

这是我创建的用于telnet到服务器的.bat文件,更改文件权限,然后将文件ftp到我的PC并打开它。希望它会帮助你。变量文件名是因为我每次都登录并移动到相同的目录名。您可以将其更改为提示,以便用户可以输入他们想要CD的位置。如果您有任何疑问,请告诉我。

:: This will telnet to the server, change the permissions, 
:: download the file, and then open it from your PC. 

:: Add your username, password, servername, and file path to the file.
:: I have not tested the server name with an IP address.

:: Note - telnetcmd.dat and ftpcmd.dat are temp files used to hold commands

@echo off
SET username=
SET password=
SET servername=
SET filepath=

set /p id="Enter the file name: " %=%

echo user %username%> telnetcmd.dat
echo %password%>> telnetcmd.dat
echo cd %filepath%>> telnetcmd.dat
echo SITE chmod 777 %id%>> telnetcmd.dat
echo exit>> telnetcmd.dat
telnet %servername% < telnetcmd.dat


echo user %username%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo cd %filepath%>> ftpcmd.dat
echo get %id%>> ftpcmd.dat
echo quit>> ftpcmd.dat

ftp -n -s:ftpcmd.dat %servername%

SET mypath=%~dp0
%mypath%%id%

del ftpcmd.dat
del telnetcmd.dat

答案 1 :(得分:0)

结帐expect。以上就是它的设计目标。

  

Expect是一款Unix自动化和测试工具,由Don Libes编写   用于交互式的Tcl脚本语言的扩展   应用程序,如telnet,f​​tp,passwd,fsck,rlogin,tip,ssh和   其他。它使用Unix伪终端来包装子进程   透明地,允许任意应用程序的自动化   通过终端访问。