2017-06-06 10 views
1

リモートの2つのテキストファイルを比較したいと思います。 diffを使って私はそれを行うでしょうリモートとローカルファイルの比較を超えて

ssh [email protected] "cat myfile.txt" | diff - local.txt 

Beyond Compareを使って同じ比較を実行する方法はありますか?私が行う場合

ssh [email protected] "cat myfile.txt" | bcompare - local.txt 

私は表示されているローカルファイルのみを取得します。

答えて

2
私はこのような場合に使う一つの巧妙なトリックは、リモートディレクトリを超えても地元の一つとして見せること sshfsを使用することです

コンペア:

sshfs [email protected]:/opt/data /tmp/transfer 

が次にあなたが比較するために、任意の差分のツールを使用することができますあなたのローカルデータをdiff -Nur /local/data/dir /tmp/transfer経由で遠隔地のデータと比較するか、それ以外の場合は通常どおりに比較し、必要に応じてファイルを前後にコピーすることができます。

注意:パッケージマネージャを使用してsshfsをインストールする必要があります。

  • -o PubkeyAuthentication=noapt-get install sshfs

    可能なオプション経由のDebian/Ubuntuの上でパスワード認証が必要ですが、sshが最初にこのサーバー用の秘密鍵認証を使用するか、なしている場合は必要ありません、あまりにも多くの秘密鍵authenticaitionsをしようとした場合すべて

  • -o sshfs_debugで秘密鍵の認証:認証/接続が
  • -o idmap=userを失敗した場合、より多くの情報をプリントアウト:リモートユーザー
  • に接続しているユーザーのUIDを翻訳するIDMAP =ユーザーオプションを使用します
  • -o gid=1000:uid、gid - 指定された値にファイルの報告された所有権を設定します。 uidはユーザーの数値ユーザーID、gidはユーザーの数値グループIDです。
  • -o nomap=error:ユーザー・マッピングが詳細はhttps://wiki.archlinux.org/index.php/SSHFSを参照してください

を行うことができない場合は失敗。

+0

うわー、あなたのトリックは素晴らしい作品です。オプションが意味するものを説明するだけでいいですか?ありがとうございました – Manfredo

+0

私はちょうど1つのシナリオでこれらを使用した、それらは必須ではありませんが、しばしば有用です、私は彼らが何をしているか説明し、より多くの情報へのリンクを提供しました。 – centic

2

Beyond Compare Proには、SFTPサポートが組み込まれているため、コマンドライン引数として直接SFTP URLを渡すことができます。

bcompare local.txt sftp://user:[email protected]/folder/file.txt 

URLにパスワードを入力しないと、Beyond Compareはパスワードを要求します。

bcompare local.txt sftp://[email protected]/folder/file.txt 
+0

これが私の場合はわかりません。私はローカルのファイルと私がクラスタのリモートディレクトリにあるファイルを比較したいと思います。私は通常それにアクセスします 'ssh [email protected]" cd my/directory/"' – Manfredo

+0

SSHをサポートする多くのサーバもSFTPをサポートしています。あなたの例では、コマンドラインを使用します: 'bcompare sftp:// name @ login.xxx/my/directory/file.ext' –

+0

@ChrisKennedy、Beyond Compare ProサポートSFTと秘密のRSAキー認証'ssh'の' -i'オプション)?パスワードベースの認証のみですか? – Dmitriusan

関連する問題