我在本地计算机上有一个文本文件,它由在cron中运行的每日Python脚本生成.
我想添加一些代码,以便通过SSH将该文件安全地发送到我的服务器.
完整的工作测试案例
当然,根据您在本地和远程计算机上的内存,您的阵列大小会有所不同.
z1 = numpy.random.rand(300000000,2);
for i in range(1000):
print('*******************************************\n');
direct_output = subprocess.check_output('ssh blah@blah "ls /"', shell=True);
direct_output = 'a'*1200000;
a2 = direct_output*10;
print(len(direct_output));
Run Code Online (Sandbox Code Playgroud)
当前用例
如果它有助于我的用例如下:
我发出数据库查询,然后将结果表存储在远程计算机上.然后我想通过网络传输它们并进行分析.到目前为止,我在python中做了类似下面的事情:
#run a bunch of queries before hand with the results in remote files
....
counter = 0
mergedDataFrame = None
while NotDone:
output = subprocess.check_output('ssh blah@blah cat /data/file%08d'%(counter))
data = pandas.read_csv(...)
#do lots of analysis, append, merge, numpy stuff etc...
mergedDataFrame = pandas.merge(...)
counter += 1
Run Code Online (Sandbox Code Playgroud)
在某些时候,我在check_output命令中收到以下错误:[Errno 12]无法分配内存
背景
感谢以下问题,我想我已经知道出了什么问题.发布了许多解决方案,我试图确定哪些解决方案将避免[Errno 12]无法使用fork/clone分配与子进程实现相关的内存错误.
我已经能够在远程服务器中使用ssh和issue命令.现在我想从远程服务器scp文件,但这似乎是不可能的.我对python和Paramiko完全不熟悉.错误是在我的本地目录的darn窗口中被拒绝权限.这些文件应该来自Mac.还有其他非常简单的例子我可以使用scp文件从远程Linux机器到我的本地Windows机器吗?
import paramiko
hostname = '192.xx.1.xx'
password = 'pop123'
username = "husbad2"
port = 22
mypath='C:\\Users\\handsonexpert\\Documents'
remotepath='/Users/ihussain/testdir/file3.txt'
t = paramiko.Transport((hostname, 22))
t.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(mypath, remotepath)
Run Code Online (Sandbox Code Playgroud) Google 文档在这个主题上有点通用,我发现很难绕过他们使用的不同 API 和术语,所以我想知道是否有人可以给我指出正确的方向。
我正在寻找一种gcloud直接从 Python 调用命令的方法。我已经安装gcloud在我的 Python 环境中,作为一个示例,我想知道如何从 Python 执行以下操作:
gcloud compute copy-files [Source directory or file name] [destination directory of file name]
Run Code Online (Sandbox Code Playgroud) python google-compute-engine gcloud gcloud-python google-cloud-python
此代码提供以下错误:
os.system("scp %s:/export/home/sample/backup.sql %s:/home/rushi/abc.sql" % (a, b))
Permission denied (publickey,keyboard-interactive).
lost connection
Run Code Online (Sandbox Code Playgroud)
a和b是命令行参数,它接受用户名和机器名作为参数:
例如:root@10.88.77.77.
我一直在尝试使用密码将文件 scp 发送到远程计算机。我使用了这个代码:
import os
import scp
client = scp.Client(host="104.198.152.xxx", username="nxxx", password="xxxxxx")
client.transfer("script.py", "~/script.py")
Run Code Online (Sandbox Code Playgroud)
正如如何在 python 中 scp 中所建议的那样?,但它输出:
File "script.py", line 5, in <module>
client = scp.Client(host="104.198.152.153", username="nazarihome", password="mohMOH13579")
AttributeError: 'module' object has no attribute 'Client'
Run Code Online (Sandbox Code Playgroud)
我还尝试了人们建议的其他方法,但似乎它们都不起作用。有人有真正有效的建议吗?
ps 如果您的答案取决于密码,我必须使用密码而不是密钥。
我想登录网络中的不同机器,并将该机器中的文件复制到我的机器上.我想用python做这个.任何想法我怎么能这样做.我有python 2.5和ubuntu 8.10
python ×7
scp ×4
ssh ×3
automation ×2
paramiko ×2
gcloud ×1
linux ×1
memory ×1
networking ×1
subprocess ×1