Ubuntuサーバーの写真へのWindowsリアルタイムアクセス[初級]

Ubuntuサーバーの写真へのWindowsリアルタイムアクセス[初級]

序文:

この方法はあまりにもエレガントではありません。他に方法がある場合は、私に知らせてください〜

以前は、mujocoのレンダリングの問題により、リモートコントロールソフトウェアしか使用できず、プログラムはデスクトップで起動する必要がありました。
新しいバージョンでは、ついに写真をオフラインでレンダリングできるようになりました。
ただし、VSCODEやpycharmなどのリモートIDEでは、pygameなどのリアルタイムレンダリングを呼び出すことはできませんが
、現在のシミュレーション環境で生成された画像をリアルタイムで見る必要がある場合がある
のでAチャネルを構築できるのではないかと思います。写真やその他のファイルの転送を実現するために。結局のところ、安定したLAN通信があります。
午前9時に設計された計画は少しとんでもないです:

1.远程脚本产生图片,存入远程服务器本地;
2.远程脚本通过subprocess启动本地脚本;
3.本地脚本通过subprocess获取服务器图片;
4.本地脚本通过pygame渲染图片;

この重要な手順は私には無視されました。ローカルスクリプトでサーバーのイメージを取得するにはどうすればよいですか。
それでもssh経由で通信する必要があります。
この通信時間は無視できません。

次に、UbuntuのWindowsでPythonスクリプトをリモートで呼び出すことができませんでした。
せいぜいSSHでWindowsにログインできますが、以下のコマンドがすべて正しく実行できず、さまざまなエラーが報告され、答えが見つからないため、この方法は中止されます。

結局、私はファイルを転送するためにSCPを選びました

結局、ファイルを転送するためにscpを選択しました。この命令は非常に単純で、以前はコマンドラインでよく使用されていました。
ただし、注意すべき点が2つあります。

本物のWindows10インストールsshサーバー

  1. Windowsの下にsshサーバーをインストールする必要があります:
    Windows 10ですべてが正常な場合は、このチュートリアルで直接インストールできます:
    win10の下にsshサービスを追加します

その他のインストールfreeSSHD

  1. Windowsがdbの場合、次の
    エラーが発生します:エラー:0x80070424
  2. このとき、freesshd
    をダウンロードにインストールし、freeSSHd.exeをダウンロードして、任意の場所にインストールする必要があります。
  3. ユーザーを設定し、ログインしてアカウント名を定義します。
  4. SHA1ハッシュとして保存されているパスワードを選択し、パスワードを設定します。
  5. ユーザーはシェル、sftp、トンネリング、都選択上;
  6. sshを設定し、リッスンアドレスを選択し、IPアドレスを選択します。他には何もありません。
  7. 現時点では、WindowsをUbuntuと同様のサーバーとして設定できます。
  8. SFTPでホームパスを設定するには、設定後、ファイル転送は現在のディレクトリにあります。

sshサーバーを起動できない場合は、権限が不十分であるというエラーが報告されます。

許可が拒否されました。sshを使用してリモートでログインする場合は、再試行してください。

ただ、此电脑クリックWindowsで、クリックし管理、そして服务与应用程序、その後服务、その後、freeSSHDserverを見つけて、このサービスを再起動してください。
このとき、run sshserverをクリックできます。

ここに画像の説明を挿入

UbuntuでWindowsへのssh接続をテストします。

Ubuntuを直接制御するのと同様に、次のようになります。

ssh youruser@192.168.23.23

パスワードを入力するだけでほぼ十分です。

sshpassを使用すると、パスワードを個別に入力する必要がなくなります。

もちろん、毎回パスワードを入力しないようにするために、Ubuntuに次のパッケージをインストールできます。sshpass

sudo apt-get install sshpass

その後、リモートコマンドは次の形式になります。

sshpass -p 'your password' ssh user@192.168.23.23

PythonスクリプトでファイルをWindowsに転送するscp

チャネルを開くと、ファイルはscpを介してWindowsに転送できます。現時点では、Ubuntuをクライアント、Windowsをサーバーと見なしているため、ファイルをWindowsサーバーにアップロードします。
コマンドラインでファイルをアップロードするためのチュートリアルは次のとおりです
。scpサーバー間のリモートコピー
パスワードを入力しないコマンドラインは次のとおりです。

sshpass -p 'your password' scp -r ssh_img.jpg lyl@192.168.23.23:

ここには非常に奇妙な問題があり、理解できず、解決策のバグを見つけることができません。つまり、アップロードされたフォルダはCドライブのみであり、別のドライブに切り替えることはできません。他のドライブのパスを書き込んでも、エラーは報告されません。、Cドライブの初期ディレクトリに空のファイルが作成されます。
または、エラーを報告するだけです。

scp: Failed to open file /d:/.
lost connection

この問題はfreesshdでのみ発生する可能性があることに気付いたので、調べました。
案の定、理由はわかりました。SFTPでファイル転送用のホームディレクトリを設定する必要がありました。設定後、IPアドレスの後に何か厄介なものを書きました。
ここに画像の説明を挿入

Pythonスクリプトでコマンドラインステートメントを実行します。

import os
sync_cmd = "sshpass -p 'your password' scp -r ssh_img.jpg [email protected]:"
# 下面是将字符串在命令行中执行的意思
os.system(sync_cmd)

基本的に、0.3秒に1枚の画像が、Windowsのフォルダに直接表示され、画像の更新を直接確認できます。

エフェクト画像

ここに画像の説明を挿入

総括する:

この方法は、ほとんど機能しませんが、あまりにもエレガントではありません。
他に良い方法があれば、必ず道を示してください〜

連絡先の詳細:

ps:一緒に勉強するためにグループに参加することに集中している学生を歓迎します:

深層強化学習-DRL:799378128

知乎のアカウントをフォローすることを歓迎します:まだ始めていない錬金術の見習い

CSDNアカウント:https://blog.csdn.net/hehedadaq

最小限のスピンアップ+ HER + PERコードの実装:https//github.com/kaixindelele/DRLib

おすすめ

転載: blog.csdn.net/hehedadaq/article/details/115049461