問題タブ [unison]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 複数のコンピューター間でファイルをコピーするための Python での最適なユーティリティ/ライブラリ/戦略は何ですか?
複数のコンピューターのデータをフォルダーに保存しています。多くのフォルダーには、500 K から 125 MB のサイズのファイルが 40 から 100 G 含まれています。アーカイブする必要がある 4 TB のファイルがいくつかあり、各コンピューターに保存されているメタ データに応じて、未定義のメタ データ システムを構築します。
すべてのシステムで Linux が実行されており、Python を使用したいと考えています。ファイルをコピーしてアーカイブする最良の方法は何ですか。
ファイルを分析し、メタデータ テーブルを埋めるプログラムが既にあり、それらはすべて Python で実行されています。私たちが理解する必要があるのは、データを失うことなくファイルを正常にコピーする方法と、ファイルが正常にコピーされたことを確認する方法です。
rsync と unison を使用して subprocess.POPEn を使用してそれらを実行することを検討しましたが、これらは本質的に同期ユーティリティです。これらは基本的に一度だけコピーされますが、適切にコピーされます。ファイルがコピーされると、ユーザーは新しいストレージ システムに移動します。
私の心配は、1) ファイルがコピーされるときに破損があってはならないことです。2) ファイルのコピーは効率的である必要がありますが、速度は期待できません。LAN は 10/100 で、ポートはギガビットです。
組み込むことができるスクリプト、または提案はありますか。すべてのコンピューターで ssh-keygen が有効になっているため、パスワードなしで接続できます。
ディレクトリ構造は、古いコンピュータと非常によく似た新しいサーバーで維持されます。
.net - 転送中に Windows/Linux 間の Unison 同期がランダムにハングする
私たちはインタラクティブなキオスクの CPU をリモートの物理サイトに定期的に展開しており、各キオスク (Windows 7 Pro) とホストされた CMS (linode.com で実行されている仮想化された Ubuntu サーバー) の間でメディア アセットの夜間同期を実行するコンテンツ アップデーター アプリケーションを開発しました。 . コンテンツ アップデーターは C#/.NET で作成され、Process.Start() を使用して子 Unison プロセスを生成します。Unison は、秘密鍵を使用して SSH 経由でリモート サーバーに接続するように構成されています。
私たちが直面している問題は、Unison が ContentUpdater.exe から子プロセスとして生成されると、転送中にリモート サーバーとの通信を停止し、無期限にハングすることがよくあることです。単純な再現性はありません。動作することもありますが、多くの場合、ハングします。大規模な更新 (400MB 以上) では壊れやすいようですが、それは何よりも推測です。ハングした場合、クライアント (Windows 7) の Unison プロセスはまだ 25% の CPU 使用率を示しており、サーバーも同様に実行中の Unison プロセスを示しています。ネットワーク アクティビティはまったくありません。常にプロセスを開始し、転送の途中で取得するため、接続していることはわかっていますが、同じ場所で 2 回ハングすることはありません。Unison-2.40.63.exe のネイティブ Windows バイナリ ビルドを実行しています。
Windows の Unison コマンド ラインは次のようになります。
記録のために、私は元々 (Windows の cygwin を介して) rsync を使用するようにコンテンツ アップデーターを作成していましたが、同じ問題に直面していました。ssh トランスポートが問題の一部であるかどうかを確認するために、サーバー モード (rsyncd) で rsync を使用してみましたが、ハングは頭を悩ませ続けました。
この時点で、私は完全に困惑しています。この問題は他のサーバーでも再現されるため、Windows 側の問題だと思います。また、別のプロセス内で Process.Start() から Unison/rsync を呼び出したときにのみ問題が発生すると考える傾向があります (更新: コマンドラインから実行するときに再現するようになりました)-そうではないようですコマンドラインから直接実行すると失敗します。Unison/rsync もエラーになることはないので、チェックするログファイルはありません (リモートサーバー上のある種のサーバー側のトレースまたはログファイルを誰かが知っていない限り、私はチェックできます -- 完全な開示: 私は FreeBSD オタクであり、知っていますボンネットの下の Ubuntu についての貴重な情報はほとんどありません)。
あらゆる洞察/アイデア/解決策を前もって感謝します!
一番
python - RSAキーなしでpythonを使用したssh
Stackoverflow は初めてなので、まずはこんにちは。
私は、オープン ソースの Unison プログラム用のカスタム GUI (私は Python を使用したことがないので、教育上の課題として Python で作成されたもの) であるはずの私の学校の小さなプロジェクトに取り組んでいます。できるだけ少ない入力でこのプログラムを起動することにより、学生とスタッフが自宅と学校のフォルダーを同期できるようにしています (必要に応じて馬鹿を証明します)。インターフェースは学校のユーザー名とパスワードだけであると想定されており、GUI ラッパーはユーザー名とパスワードを Unison に送信して同期するだけです。
問題は、Unison が順番に SSh を起動してパスワードを要求することですが、python subprocess.communicate(input) メソッドでは ssh にパスワードを取得させません。ssh は端末からの入力のみを受け入れることに気付きましたが、それをだます方法がわかりません。疑似端末の使用についていくつか読んだことがありますが、まだ困惑しています。RSAキーは理想的なソリューションですが、それらを生成してリモートサーバーに配置するには、少なくとも1回はパスワードでログインする必要があり、それには上記のソリューション、またはばかではない端末が必要です。
実行文字列を貼り付けると、そこの端末で正常に機能します。また、一般的な Python のヒントもあれば、それも歓迎します。
ありがとう!
Unison ユーザーマニュアル: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html
編集: また、現在 OSX と Linux で開発を行っていますが、学校のほとんどの生徒がプライマリ (または唯一の) マシンとして Windows を実行しているため、最終的にはこの Windows を互換性のあるものにする必要があることに注意してください。
mysql - MySQL と Mongodb を併用する
私は MongoDB よりも MySQL を使用してきましたが、MongoDB から学んだことから、それはまさに私が必要としていたものですが、MySQL が実行できる制限もあります (たとえば、自動インクリメント)。
すべてに MongoDB を使用し、MySQL を特定のものにのみ使用するのは賢明でしょうか?
たとえば、MongoDB を使用してユーザーやその他すべてを保存しますが、MySQL を使用してチケット システムなどを作成します。
node.js - node.js とのファイル同期: unison== tcp==node-----[http]-----node==tcp==unison
あなたがノードを実行していて、私がノードを実行している場合、一連のファイルの同期を維持できるソリューションを見た人はいますか?
同期は複雑なので、 unisonのようなツール(rsync のようなもの)に任せて、認証されたユーザー間で TCP パイプを接続するだけでノードができると思いました。
これはおそらく約 12 行の JavaScript ですが、この時点では、私や、これまでに見つけた例のどれをとっても超えています。
私は他のファイル同期オプションをたくさん見てきました(Git、veracity、fossilなど、LinuxにSimias iFolderサーバーを1週間インストールしようとして失敗しました〜これは、主要なOSごとにファイル監視クライアントが含まれていたため、有望に見えました)でも今は、もっともっとシンプルな方法がいいのではないかと考えています。
誰かがそのような Node.js プロジェクトを見たことがあれば、または 2 つの TCP パイプを接続するのがそれほど難しくないレベルにある場合は、ご連絡いただければ幸いです。
python - Unison Merge スクリプトのコードの最後の行で SyntaxError を取得する
ねえ、そこにいる素晴らしい頭脳、
動作していることがわかったこの Python スクリプトを取得しようとしていますが、それが私だけなのか、元の投稿者がコードを正しく取得していないのかわかりません。merge
このスクリプトは、競合する 2 つのファイルを取得し、そのうちの 1 つをファイル名に日付スタンプを付けて複製することにより、prefs ファイル内のコマンドを利用することにより、Unison での自動競合解決を有効にすることになっています。元のポーズはここにありますが、へこみがなかったので、ポップアップするエラーを見て手動で実行する必要がありました. 私が今回避できないように見えるエラーは
誰かが私を助けてくれることを願っています。
以下のスクリプト全体を含めて、それが役に立ち、他のエラーに気付くことを願っています:)。
windows - Windows上の共有ドライブ全体でユニゾン
私は\192.168.1.110に共有ドライブを持っています私のユニゾンはからコピーするように設定されています
\ 192.168.1.110 \ mydataにアクセスできますが、コマンドプロンプトからユニゾンに「ログオン失敗:不明なユーザー名または不正なパスワード」と表示されますが、エクスプローラウィンドウから指定した認証情報がありません。どうすれば指定できますか?
linux - ディレクトリ内のファイルをユニゾン同期しますが、フォルダは同期しません
同期パス /home/user/mydata を指定してユニゾンに同期のみを指示するにはどうすればよいですか
質問をこの例に単純化しましたが、特定のパスにあるファイルのみを同期するように指示する方法はありますか?
git - リポジトリに何もしていないのに .git/index が変更されるのはなぜですか?
git の最新の Debian バージョン (私は 1.7.2.5 を使用しています) では.git/index
、リポジトリを変更する必要があると思われる操作を実行していなくても、ファイルが不可解に変更される可能性があることに気付きました。(私のシェルはときどき実行git branch
されるので、チェックアウトされたブランチを表示できますが、何も変更されません。) 変更により、.git/index
元のファイルと同じ長さのファイルが作成されますが、ビットが異なります。 この変化の原因は何ですか?どうすればそれを止めることができますか?
(この変更は、 Unisonファイル シンクロナイザを台無しにするので不便です。)