16 Star 45 Fork 46

现任明教教主-乾颐堂/qytang_Python

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
2016.02.15 chilkat ssh执行单个命令 2.92 KB
一键复制 编辑 原始数据 按行查看 历史
现任明教教主-乾颐堂 提交于 2016-02-14 20:26 . new file
import sys
import chilkat
import time
# Important: It is helpful to send the contents of the
# ssh.LastErrorText property when requesting support.
ssh = chilkat.CkSsh()
# Any string automatically begins a fully-functional 30-day trial.
success = ssh.UnlockComponent("Anything for 30-day trial")
if (success != True):
print(ssh.lastErrorText())
sys.exit()
# Connect to an SSH server:
# Hostname may be an IP address or hostname:
hostname = "bj1505.qytang.com"
port = 22
success = ssh.Connect(hostname,port)
if (success != True):
print(ssh.lastErrorText())
sys.exit()
# Wait a max of 5 seconds when reading responses..
ssh.put_IdleTimeoutMs(5000)
# Authenticate using login/password:
success = ssh.AuthenticatePw("yourusername","yourpassword")
if (success != True):
print(ssh.lastErrorText())
sys.exit()
# Open a session channel. (It is possible to have multiple
# session channels open simultaneously.)
channelNum = ssh.OpenSessionChannel()
if (channelNum < 0):
print(ssh.lastErrorText())
sys.exit()
# The SendReqExec method starts a command on the remote
# server. The syntax of the command string depends on the
# default shell used on the remote server to run the command.
# On Windows systems it is CMD.EXE. On UNIX/Linux
# systems the user's default shell is typically defined in /etc/password.
# Here are some examples of command lines for <b>Windows SSH servers</b>:
# Get a directory listing:
#cmd1 = "show ver"
# Do a nameserver lookup:
#cmd2 = "show ip inter brie"
# List a specific directory. Given that the shell is CMD.EXE, backslashes must
# be used:
#cmd3 = "sh run"
# Execute a sequence of commands. The syntax for CMD.EXE may be found
# here: http://technet.microsoft.com/en-us/library/bb490880.aspx. Notice how the commands
# are separated by "&&" and the entire command must be enclosed in quotes:
#cmd4 = "\"cd \\temp&&dir\""
# Here are two examples of command lines for <b>Linux/UNIX SSH servers</b>:
# Get a directory listing:
#cmd5 = "ls -l /tmp"
# Run a series of commands (syntax may depend on your default shell):
#cmd6 = "cd /etc; ls -la"
# Request a directory listing on the remote server:
# If your server is Windows, change the string from "ls" to "dir";
success = ssh.SendReqExec(channelNum,"show ver")
if (success != True):
print(ssh.lastErrorText())
sys.exit()
# Call ChannelReceiveToClose to read
# output until the server's corresponding "channel close" is received.
success = ssh.ChannelReceiveToClose(channelNum)
if (success != True):
print(ssh.lastErrorText())
sys.exit()
# Let's pickup the accumulated output of the command:
cmdOutput = ssh.getReceivedText(channelNum,"ansi")
if (cmdOutput == None ):
print(ssh.lastErrorText())
sys.exit()
# Display the remote shell's command output:
print(cmdOutput)
# Disconnect
ssh.Disconnect()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/qytang/qytang_Python.git
git@gitee.com:qytang/qytang_Python.git
qytang
qytang_Python
qytang_Python
master

搜索帮助