2017-04-14 19 views
2

私はパテを使用してローカルサーバーに接続するために使用されます。しかし、今はスクリプトのpythonを使ってファイルを作成する必要があります。このファイルはサイズが大きいので、ローカルサーバーに置く必要があります。Python:ローカルサーバーにファイルを作成する方法は?

putyを使用すると、私は自分のホストアドレス、パスワード、名前、およびポートを入力する必要があります。

どうすればよいですか?

これは私のスクリプトです:

import numpy as np 
import glob 
import os 
P_Result_File_Path ="Path_To_the_Result_File" 
Folder_path =r'Path_To_my_numpy_files' 
os.chdir(Folder_path) 
npfiles= glob.glob("*.npy") 
npfiles.sort(key=os.path.getmtime) 
print (npfiles) 
loadedFiles = [np.load(npf) for npf in npfiles] 
PArray=np.concatenate(loadedFiles, axis=0) 
np.save(Power_Result_File_Path, PArray) 

P_Result_File_Pathファイルが巨大なサイズを持っているので、私は、ローカルサーバーに保存する必要があり、この場合の問題点はPath_To_the_Result_File= /home/user/result.npyので、このパスが不明であることを、私は必要生成されたファイルを作成して配置するために、このサーバに接続します。

+0

のpythonファイルを実行するために、サーバにsshをその前にまずを実行したいと思いますので、SCPは、独自のSSH接続を作成します。あるマシンから別のマシンにファイルをコピーしたくない場合は、そこにスクリプトを書いてください。ここであなたが探しているものがありますか? –

+0

@SudheeshSinganamallaお返事ありがとうございました。編集した質問をご覧ください。 – Guillaume

答えて

0

質問の変更により回答が編集されています。

あなたは一時的であっても、ローカルマシン上のP_Result_File_Pathを保存したくない場合は、次の

私が最初のサーバにPythonスクリプトファイルをコピーするためにあなたをアドバイスだろう、とで述べたように(そこにそれを実行します@Sudheesh Singanamalla)。あなたのPythonスクリプトをコピーするためには、SCPをご覧なってください - http://www.hypexr.org/linux_scp_help.phpを):

コピーリモートホストのディレクトリ「バー」

$ scp -r foo [email protected]:/some/remote/directory/bar 

それともバイスにローカルホストからディレクトリ「foo」という逆に、ローカルマシンからサーバーにスクリプトをコピーすることができます。 そして、あなたはあなたのPythonスクリプトを実行し、サーバーであなたのP_Result_File_Pathを保存することができ、直接

しかし、あなたが最初にローカルマシンでP_Result_File_Pathを作成し、それをサーバーに送信する場合:実行

あなたローカルマシン上のpythonスクリプトを実行した後、scpファイルをサーバに送信します。

希望、これは(結果のファイルは、ローカルマシン上のPythonスクリプトの実行中にサーバーに保存されなければならないので)

の更新をするのに役立ちます - アイデアとして、あなたはこのためにFTPを使用することができます。

import ftplib 
session = ftplib.FTP('<your_server_address>','USERNAME','PASSWORD') 
session.storbinary('STOR <file_to_send>', PArray) 

あなたがまだエラー[Errno 11001] getaddrinfoに失敗した場合、このミスが起こった理由をGoogleに簡単に伝えてください。

+0

答えがありがとうございます:_socket.getaddrinfo(host、port、family、type、proto、flags)のres:のために gaierror:[ERrno 11001] getaddrinfoが失敗しました – Guillaume

+0

OPが既に接続している場合SSHを使ってサーバーに接続すると、FTP経由でファイルを送信するだけの別のpythonスクリプトを呼び出すのではなく、 'scp'などを使ってファイルを送信するほうが簡単になりませんか? – Simon

+0

@ Simon、私はすでにSSHを使って接続していますが、デスクトップにファイルを作成してからローカルサーバに移動するのは好きではありません。 – Guillaume

1

リモートサーバーがあなたのローカルマシン(つまり、あなたのコンピュータ)に接続できる場合は、以下を試すことができます:

  1. サーバーへのSSHサーバーにローカルマシンからファイルをコピーする
  2. 使用SCP:scp <source> <destination>
    • scp [email protected]_ip:/path/to/local/python/script.py /server/path/for/saved/file.py
    • scpコマンドは次の構文を取ります。この場合、ソースはローカルマシンで、宛先はサーバーですが、既にサーバーにログインしている場合は、ローカルマシンのログイン情報を指定する必要があります。
  3. pythonスクリプトにあなたのサーバーにコピーされている場合は、まだSSH経由で接続している間にpython /server/path/for/saved/file.pyで実行してください。ちょうどあなたのPythonスクリプトでのパスは、イベントでは、それ

を転送する必要がいけないので、これは直接サーバー上の結果ファイルを生成する必要があります

  • サーバー上で実行可能なパスであることを確認してくださいリモートサーバーがローカルマシンにアクセスできない場合は、サーバーにPythonスクリプトを入手するためにできることがいくつかあります。

    • ファイルをどこかに(例えばdropbox)アップロードしてリンクを取得します。 SSHをサーバーに、wget http://link-to-file.pyを使用してpythonファイルをサーバーにプルします。次に上記のように、ローカルマシン上でサーバーや...
    • に直接のpythonを使用してそれを実行し、SCPを使用して転送するために、いくつかの端末を使用していますが、他の方向にこの時間:
      • scp /path/to/local/python/script.py [email protected]_ip:/server/path/for/saved/file.py
      • サイド注:あなたは手動であなたがサーバーにsshとあなたのpythonを実行することができます
+0

私のローカルサーバにスクリプトをコピーしましたが、問題はそれらのパスを変更する必要があるということです:P_Result_File_Path = "Path_To_the_Result_File" Folder_path = r'Path_To_my_numpy_files 'したがって、実際のパスを保持するとエラーが発生しますFileNotFoundError:[Errno 2] Noそのようなファイルまたはディレクトリ:私はローカルサーバーのファイルのフォルダを移動する必要があることを意味しますが、私にとって私のローカルマシン(実際に私は膨大な数のファイルを持っています)で私のファイルを含む私のforlderを維持する必要があります本当に私は何をすべきかわからないのですか? – Guillaume

+0

結果ファイルをローカルサーバに置く必要があります – Guillaume

+0

この場合、Pythonファイルのパスをローカルマシンのパスに設定する必要があります(つまり、 'P_Result_File_Path'はローカルパスでなければなりません)。スクリプトをローカルに実行して、コンピュータ上の結果ファイルを取得します。次に、上記と同じ方法で* results *ファイルをサーバーにscpします(scpの代わりにpythonスクリプト、結果をscp) – Simon

関連する問題