python连接ssh_使用Python连接到SSH

我正在尝试使用Spur通过SSH连接到远程服务器。当我给出“ ps”和“ aux”参数时,它会很好地工作。当我输入“ ps”,“ aux”,“ |”,“ grep”和“ java”时,它给我一个错误

spur.results.RunProcessError: return code: 1

output: b''

stderr output: b'ERROR: Garbage option.\n********* simple selection ********* ********* selection by list *********\n-A all processes -C by command name\n-N negate selection -G by real group ID (supports names)\n-a all w/ tty except session leaders -U by real user ID (supports names)\n-d all except session leaders -g by session OR by effective group name\n-e all processes -p by process ID\nT all processes on this terminal -s processes in the sessions given\na all w/ tty, including other users -t by tty\ng OBSOLETE -- DO NOT USE -u by effective user ID (supports names)\nr only running processes U processes for specified users\nx processes w/o controlling ttys t by tty\n*********** output format ********** *********** long options ***********\n-o,o user-defined -f full --Group --User --pid --cols --ppid\n-j,j job control s signal --group --user --sid --rows --info\n-O,O preloaded -o v virtual memory --cumulative --format --deselect\n-l,l long u user-oriented --sort --tty --forest --version\n-F extra full X registers --heading --no-heading --context\n ********* misc options *********\n-V,V show version L list format codes f ASCII art forest\n-m,m,-L,-T,H threads S children in sum -y change -l format\n-M,Z security data c true command name -c scheduling class\n-w,w wide output n numeric WCHAN,UID -H process hierarchy\n'

我的代码如下:

import spur

shell = spur.SshShell(hostname='hostname',

username='uname',

password='password')

with shell:

result = shell.run(['ps', 'aux', '| grep java'])

print result.output

如果有人遇到类似问题,请帮助我

解决方案

它应该通过执行以下操作:

import spur

shell = spur.SshShell(hostname='host',

username='user',

password='password')

with shell:

result = shell.run(['sh','-c','ps aux | grep java'])

print result.output

就我而言,结果是:

user 5090 0.0 0.0 9632 2472 ? Ss 04:06 0:00 sh -c ps aux | grep java

user 5093 0.0 0.0 9116 904 ? S 04:06 0:00 grep java

如果你使用sshtunnel连接MySQL时遇到问题,可能是由于以下原因之一: 1. 确保SSH连接正常:在使用sshtunnel之前,你需要先通过SSH连接到远程服务器。在本地终端上测试SSH连接是否正常,可以使用以下命令: ``` ssh username@server_ip ``` 如果SSH连接无法正常工作,则需要解决SSH连接问题。 2. 确保MySQL服务器正在运行:在尝试连接到MySQL服务器之前,确保MySQL服务器正在运行。在远程服务器上使用以下命令检查MySQL服务器是否正在运行: ``` systemctl status mysql ``` 如果MySQL服务器没有运行,则需要启动MySQL服务器。 3. 确认MySQL数据库可以从远程访问:默认情况下,MySQL数据库只允许本地访问。如果你想从远程访问MySQL数据库,则需要修改MySQL配置文件以允许远程访问。在MySQL服务器上,编辑MySQL配置文件(通常位于/ etc / mysql / my.cnf)并添加以下行: ``` bind-address = 0.0.0.0 ``` 然后重新启动MySQL服务器以使更改生效。 4. 确认MySQL用户有足够的权限:在尝试连接到MySQL服务器之前,确保你使用的MySQL用户具有足够的权限来访问所需的数据库。在MySQL服务器上,使用以下命令检查您的MySQL用户权限: ``` SHOW GRANTS FOR 'username'@'localhost'; SHOW GRANTS FOR 'username'@'%'; ``` 如果你的MySQL用户没有足够的权限,则需要更新MySQL用户权限。 5. 检查sshtunnel配置:最后,确保你的sshtunnel配置正确。检查本地和远程端口以及SSH主机和MySQL主机是否正确设置。 如果你仍然无法连接到MySQL,请检查以上步骤并尝试解决任何问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值