如何防止我的应用程序在并行化paramiko.SFTPClient.get请求时挂起?
我试图通过SFTP并平行从服务器检索文件,然后上传到AWS.我正在使用Python多线程,上传零件正常工作,但是,我注意到从paramiko.SFTPClient中进行操作可以使程序悬挂在最后.实际上,所有文件均已撤回和上传,但程序没有退出.我尝试了许多类似帖子的事情,但没有任何可行,我的伪代码是以下内容,欢迎任何帮助: def create_sftp_connection(host, port, username, password): transport = paramiko.Transport((host, port)) transport.connect(username, password) sftp_client = paramiko.SFTPClient.from_transport(transport) def get_and_upload_file(s3, sftp_client, file, local_full_path, desti
2 2024-04-03
编程技术问答社区
使用Paramiko从SFTP向S3传输文件
我正在使用paramiko访问远程SFTP文件夹,并且我正在尝试编写从SFTP中的路径传输文件的代码(使用文件元数据简单逻辑来检查其最后一个修改的日期)到AWS S3 Bucket . 我已经使用BOTO3设置了与S3的连接,但是我似乎仍然无法编写一个工作代码,该代码在不将文件下载到本地目录的情况下将文件传输到本地目录.这是我尝试使用Paramiko的getfo()方法尝试的一些代码.但这行不起作用. for f in files: # get last modified from file metadata last_modified = sftp.stat(remote_path + f).st_mtime last_modified_date = datetime.fromtimestamp(last_modified).date() if last_modified_date > date_limit: # check limit
2 2024-04-03
编程技术问答社区
尝试用Paramiko SSH进入一个新的EC2实例的问题
我正在研究一个脚本,该脚本与boto一起旋转一个新的EC2实例,并使用Paramiko SSH客户端在实例上执行远程命令.无论出于何种原因,Paramiko客户端都无法连接,我会得到错误: Traceback (most recent call last): File "scripts/sconfigure.py", line 29, in ssh.connect(instance.ip_address, username='ubuntu', key_filename=os.path.expanduser('~/.ssh/test')) File "build/bdist.macosx-10.3-fat/egg/paramiko/client.py", line 291, in connect File "", line 1, in connect socket.error: [Errno 61] Connection refu
0 2024-04-03
编程技术问答社区
使用Python Paramiko的非默认外壳在远程服务器上执行本地脚本
我正在尝试在远程服务器上运行我的本地bash而无需将其复制到远程服务器中.它就像用于测试目的一样简单.它可以完美地运行多个服务器,但是在某些运行tcsh的服务器中,有一个问题.如果以下内容不起作用,我该如何调用bash.以下是虚拟test.sh #!/bin/bash a=test echo $a echo $SHELL 我正在使用python paramiko exec_command进行远程执行,如下: my_script = open("test.sh").read() stdin, stdout, stderr = ssh.exec_command(my_script, timeout=15) print(stdout.read().decode()) err = stderr.read().decode() if err: print(err) 给定,该连接起作用,相同的脚本适用于bash默认shell的其他服务器. 这是我得到的输出:
0 2024-03-28
编程技术问答社区
在SSH/Paramiko中使用不同的外壳执行命令/脚本
我是Linux和Paramiko的新手,但是我遇到的问题是我尝试更改外壳时,远程Paramiko会话将悬挂. 远程主机在/etc/csh中默认为 我正在运行各种脚本,有些脚本需要csh,而另一些则需要bash.由于远程主机在csh中,我在csh中运行的任何脚本都可以正常工作. 要运行我需要在bash中的其他脚本. 每当我尝试使用bash或/bin/bash paramiko连接更改外壳时,都会挂起.我正在使用以下命令在连接之前验证外壳,并在尝试临时更改外壳以查看有效的方法,但没有.这使用 paramiko 和 python 3.6.5 . 注意:这也将失败.如果我将远程主机放入bash默认情况下,它将无法切换到csh main.py connection = SSH.SSH(hostname, username, password) connection.changeShell('echo $0 ; echo $shell; /bin/bash ; echo $s
0 2024-03-28
编程技术问答社区
使用Python Paramiko通过SSH向命令/脚本传递输入/变量
我正在通过SSH上的远程服务器上的bash脚本进行响应. 我正在撰写Python 3.6.5的程序,该程序将SSH到远程Linux服务器. 在此远程Linux服务器上,我正在运行一个BASH脚本,需要用户输入才能填写.无论出于何种原因,我都无法通过SSH从我的原始Python程序中传递用户输入,并将其填充在Bash脚本用户输入问题中. main.py from tkinter import * import SSH hostname = 'xxx' username = 'xxx' password = 'xxx' class Connect: def module(self): name = input() connection = SSH.SSH(hostname, username, password) connection.sendCommand( 'cd xx/{}/xxxxx
2 2024-03-27
编程技术问答社区
帕拉米科--在 "后台 "运行的命令
我已经使用exec_command成功实现了paramiko,但是,我在远程计算机上运行的命令有时可能需要几分钟才能完成. 在此期间,我的Python脚本必须等待远程命令完成并接收stdout. 我的目标是让远程计算机"在后台运行",并允许本地python脚本在通过exec_command发送命令后继续. 我目前不关心Stdout,我只是有兴趣绕过等待STDOUT返回的等待,以便在远程计算机上运行命令时脚本可以继续. 有什么建议? 当前脚本: def function(): ssh_object = paramiko.SSHClient() ssh_object.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_object.connect(address, port=22, username='un', password='pw') command = 'c
0 2024-03-27
编程技术问答社区
不能从aws lambda同步s3和ec2文件夹
我正在尝试使用AWS自动化数据处理.我已经在Python中设置了AWS lambda功能: 被S3 PUT事件触发 SSH使用Paramiko层进入EC2实例 在实例中将新对象从存储桶中复制到某些文件夹中,解压缩了实例内的文件,然后运行清洁CSV文件的Python脚本. 问题是AWS CLI调用与EC2文件夹同步S3存储桶的呼叫不起作用,但是当我手动ssh进入EC2实例并运行它的命令时.我的AWS-CLI配置了我的Access_Keys,EC2已配置了EC2 S3角色可以完全访问. import boto3 import time import paramiko def lambda_handler(event, context): #create a low level client representing s3 s3 = boto3.client('s3') ec2 = boto3.re
2 2024-03-22
编程技术问答社区
AWS lambda:无法导入模块'Python_handler':无模块名为'_cffi_backend'
当我需要在API上读取信息,创建CSV文件并将其上传到SFTP服务器时,我正在创建AWS lambda函数. 我在VENV上安装了Paramiko,在Windows上使用Ubuntu,并且CFFI模块像依赖关系一样,但是当代码运行时,我会收到此错误: { "errorMessage": "Unable to import module 'python_handler': No module named '_cffi_backend'", "errorType": "Runtime.ImportModuleError" } 遵循我的代码: import paramiko import requests from random import randrange from datetime import datetime from datetime import timedelta from requests.auth import HTTPBasicAuth
4 2024-03-22
编程技术问答社区
导入错误 从cyptography.hazmat.bindings._constant_time导入lib
因此,我正在尝试创建一个AWS lambda函数,以登录一个实例并做一些事情.脚本在lambda之外正常工作,但是当我使用与此libffi-72499c49.so.6.0.4: cannot open shared object file: No such file or directory: ImportError Traceback (most recent call last): File "/var/task/lambda_function.py", line 12, in lambda_handler key = paramiko.RSAKey.from_private_key(key) File "/var/task/paramiko/pkey.py", line 217, in from_private_key key = cls(file_obj=file_obj, password=password) File "/var/task/paramiko/rsakey.py
4 2024-03-22
编程技术问答社区
Paramiko SFTP与密钥和用户名/密码-" Oops, unhandled type 3"
我正在尝试通过SFTP连接到从Python(使用Paramiko)的远程服务器,以自动化文件的检索. 系统版本: OS:Mac OS X狮子 Python:2.7.1 Paramiko:1.7.7.2 我最小的示例: key_file = '/absolute/path/to/.ssh/id_rsa_key' # NOT .pub key_passphrase = 'id_rsa_key_passphrase' host = 'ftp.test.com' port = 22 username = 'my_ftp_username' password = 'my_ftp_password' # SSH Key my_key = paramiko.RSAKey.from_private_key_file(key_file, password=key_passphrase) # SFTP Connection transport = paramiko.Transpor
4 2024-03-20
编程技术问答社区
输入错误 在访问服务器时没有名为constant_time的模块
这是 nifi Executescript中的导入模块 我是Python和Nifi的新手.我正在尝试在ExecuteScript处理器中执行Python脚本. 我想访问服务器.所以我使用了paramiko客户端.但是,当我运行处理器时,它在line session.write()上显示"导入错误无模块naste_time".虽然我在"/usr/local/lib/python2.7/dist-packages/"下有constand_time.py 我也有路径"/usr/local/lib/python2.7/dist-packages/"在sys.path中.我还在"模块目录"属性中给出了此路径. 这是我的代码: import json, pysftp, paramiko import java.io from org.apache.commons.io import IOUtils from java.nio.charset import Standar
2 2024-02-28
编程技术问答社区
在Web服务器上运行时,Paramiko SSH失败,出现 "Server '...'not found in known_hosts"。
我正在尝试使用Paramiko在专用网络上的2个服务器之间进行SSH通信.客户端服务器是Web服务器,主机服务器将是" Worker"服务器.这个想法是不要打开Worker Server到HTTP连接.唯一需要发生的通信是Web服务器需要将字符串传递到Worker Server上的脚本.为此,我希望使用paramiko并将信息传递给脚本. 我设置了一个新用户,并在Python 3中创建了一个测试脚本,该脚本在我从我自己的用户SSH会话中从命令行运行时可工作.我将相同的代码放入我的Django Web应用程序中,认为它应该可以工作,因为它可以从命令行测试确定,并且我会收到以下错误: 服务器的"工人服务器"在已知的_host中找不到 现在,我想我理解这个错误.执行测试脚本时,我正在使用某个用户访问服务器,并且即使用户实际上是仅为此作业创建的第三方用户,已知的主机信息也将保存到~/.ssh/known_hosts.因此,Django应用程序正在其他用户下运行,该应用程序找不到
4 2024-02-27
编程技术问答社区
用Python脚本SSH进入一个jumphost,并从该盒子中进行sftp。
我目前正在尝试编写一项气流作业,这将使我能够进入EC2实例,然后从此EC2框中与另一个主机启动SFTP会话.我当前的代码如下: def run_ssh(): hook = SSHHook(ssh_conn_id='xyz').get_conn() #returns an ssh client stdin, stdout, stderr = hook.exec_command('sftp user@host.com;') # This next step prompts me for password so i provide it stdin.write('password') logging.info(stdout.readlines()) stdin, stdout, stderr = hook.exec_command('ls') logging.info(stdout.readlines()) 当我打印最终行时,我
4 2024-01-20
编程技术问答社区
用python编程的Paramiko X11模式
我不设法使用通过其SSH X11管理功能的Paramiko Python模块. 我想使用它,就好像我使用了SSH -X选项一样. 我尝试了几种解决方案,但对我的系统没有任何作用. 这是我尝试的代码: client = paramiko.SSHClient() client.set_missing_host_key_policy(AutoAddPolicy()) client.connect(machineName, username=xxx, password=xxx) t = client.get_transport () chan = t.open_session () chan.request_x11 () chan.set_combine_stderr (True) chan.exec_command (xxxxx) # the command that should display a X11 window bufsize
4 2023-12-15
编程技术问答社区
用paramiko进行x11转发
我正在尝试使用paramiko运行一个命令,该命令应该能够打开X窗口.我使用的脚本如下: import paramiko ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect('192.168.122.55', username='user', password='password') transport = ssh_client.get_transport() session = transport.open_session() session.request_x11() stdin = session.makefile('wb') stdout = session.makefile('rb') stderr = sessio
22 2023-12-15
编程技术问答社区
不退出ssh_tunnel,打开新的终端
我正在使用python和wxpython进行GUI.我正在尝试连接SSH隧道.连接到SSH后,希望新的终端打开并必须继续在本地机器中进行操作.如何实现这一目标? 我尝试了子过程,pexpect和paramiko,但所有这些都可以连接到SSH,但不能打开新的Teminal 在我的代码下方,我尝试了Pexpect: import time import sys import pexpect c = pexpect.spawn("ssh -Y -L xxxx:localhost:xxxx user @ host.com") time.sleep(0.1) c.expect("[pP]aasword") c.sendline("xxxxxx") time.sleep(0.2) c.interact() c.pexpect([user@host.com~]$) # here after its connects to ssh then command wont be execut
0 2023-12-15
编程技术问答社区
Importerror:没有名为"密码学"的模块
我在Windows 7上安装了Python 3.4,尝试使用Paramiko时,我会得到此错误: import paramiko File "C:\Python34\lib\site-packages\paramiko-2.0.2-py3.4.egg\paramiko\__init__.py", line 30, in module File "C:\Python34\lib\site-packages\paramiko-2.0.2-py3.4.egg\paramiko\transport.py", line 32, in module ImportError: No module named 'cryptography' 我安装了pycrypto-2.6.1.win,但问题仍然存在. 有帮助吗? 解决方案 事实证明这是一个代理问题. 它正在阻止下载. 我做了 pip install cryptography pip install paramiko 从
6 2023-12-06
编程技术问答社区
使用pycrypto时没有名为'winrandom'的模块
我已经花了2天的时间尝试安装Paramiko模块的Pycrypto. 所以,我面对的第一期是: >>> import paramiko Traceback (most recent call last): File "", line 1, in File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31 , in from paramiko.transport import SecurityOptions, Transport File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4 7, in from paramiko.dsskey import DSSKey File "C:\
2 2023-12-05
编程技术问答社区
无法在远程Linux机器上导航到所需的文件夹,我如何使用paramiko做到这一点?
我正在使用Python paramiko和 我的网站服务器具有这样的文件夹结构 - 1]dir1 --dirP --dirQ 2]dir2 --dirA --file.sh --dirB 3]dir3 我想从dira dira2文件夹中的dira访问file.sh 我尝试了 - import paramiko client.connect('mysite.com', username='something', password='something') stdin, stdout, stderr = client.exec_command('cd dir2') stdin, stdout, stderr = client.exec_command('ls') for line in stdout: print('... ' + line.strip('\n')) 但我得到输出 -
0 2023-12-05
编程技术问答社区