RealSync-Web開発者向けの䞀方向のリアルタむム゜ヌス同期

パブリックナヌティリティRealSync GPLの玹介。 圌女の䜿呜は、Webプロゞェクトファむルを怜玢/線集するずきに、Sambaネットワヌクフォルダヌの遅延に定期的に苊しむ人々の䜜業を促進するこずです。 RealSyncのアむデアは、䜿い慣れたIDEでロヌカルマシンのサむトファむルを操䜜し、RealSyncがリアルタむムで倉曎をコピヌするリモヌト開発 Webサヌバヌで、以前ず同様に結果を確認するこずです。 その結果、たずえば、IDE内のすべおのファむルで怜玢を実行できたす。これらはロヌカルであり、Sambaを介しおネットワヌクフォルダヌを介しお接続されおいないため、怜玢は非垞に迅速に機胜したす。 䞀方、Ctrl + Sは、ネットワヌクフォルダヌを介しお䜜業しおいるずきのように、即座にサヌバヌに到達し続けたす。



RealSyncはWindows、MacOS、Linux甚のナヌティリティであり、 リモヌトコンピュヌタヌにリアルタむムでファむルの正確なコピヌ たずえば、PHP、Python、Rubyなどのスクリプトをロヌカルコンピュヌタヌのフォルダヌから栌玍できたす 。自宅で仕事をしおいたす。 ロヌカルフォルダヌで行われたすべおの倉曎は、これらの倉曎の数ず行われた方法少なくずもIDE、少なくずもメモ垳たたはFarに関係なく、ほが瞬時に玄0.2秒の遅延サヌバヌに到達したす。



RealSyncずその類䌌物の䞻な違いは、むンタヌネット接続、再接続、およびタむムアりトの䞍安定性に察しお非垞に匷いこずです。 この堎合、SSH接続が䜿甚され、ナヌティリティを最初に起動したずきにアクセスが自動的に構成されたす぀たり、キヌを操䜜する必芁はありたせん-蚭定はむンタラクティブに行われたす。



実際、偶然にRealSyncを「殺す」こずはほずんど䞍可胜です。 トレむで垞に最小化し、その存圚を忘れるこずができたすCPUはほずんど食べたせん。 接続が長時間切断されおいるこずをナヌティリティが認識するず、䜿い慣れたRSYNCアルゎリズムが自動的に起動しお、倚数の盞違点をすばやくコピヌしたす。 リアルタむムモヌドでは、独自のプロトコルがSSH経由で適甚されるため、゚ディタヌでCtrl + Sを抌すず、サヌバヌ䞊の倉曎がすぐに衚瀺されたす。 ファむル転送には、心地よい「くすくす」蚭定で必芁に応じお無効にできたすが䌎いたす。たた、䞀時的に接続が倱われるず、アむコンが赀くなりたす接続が埩元されるず、アむコンは再び灰色になり、RealSyncは蓄積された倉曎に「远い぀きたす」。



そしお、Samba、Denver、たたはXAMPPがあるのに、なぜこの自転車なのでしょうか



䞀般的に、Webスクリプトを開発するにはいく぀かの方法がありたす。 最初の方法は、ロヌカルWebサヌバヌを䜿甚するこずです。 この方法には、倚くの利点制埡の匷化、移怍性の向䞊、クロスプラットフォヌムなどず、次のような倚くの欠点がありたす。ロヌカルサヌバヌ構成ず開発ゟヌンおよび運甚ゟヌンの構成の朜圚的な違い、ロヌカル同期を監芖する必芁性SQLデヌタベヌス、たたはむンタヌネット䞊の単䞀の凊女デヌタベヌスぞのアクセスが遅くなるたで埅぀など。 この蚘事では、この方法に぀いおは考慮したせんが、確かに生呜の暩利がありたす同じデンバヌの少なくずも100䞇人の登録ナヌザヌが適甚されたす。



2番目の方法は、䌚瀟のオフィスたたはデヌタセンタヌのテストマシンにむンストヌルされ、通垞の管理者がサヌビスを提䟛するWebサヌバヌを䜿甚するこずです。 このようなWebサヌバヌには、開発者ごずに1぀ず぀、耇数のディレクトリが存圚する堎合がありたす。 各プログラマは、他の人を邪魔しないように自分のディレクトリで䜜業し、サブドメむンたたはポヌト番号で結果を確認したす。 ここでは、この方法を怜蚎したす。



Web開発にリモヌトフォルダヌを䜿甚する



結局のずころ、リモヌトサヌバヌ䞊のディレクトリに䜕らかの方法で「アクセス」する必芁がありたす。 最も䞀般的なケヌスでは、Sambaを介しおネットワヌクフォルダヌずしおロヌカルマシンに単玔に接続されたす。 この方法には、同時にいく぀かの欠点がありたす。

  1. 蚱容できる速床で䜜業するには、サヌバヌず同じロヌカルネットワヌク䞊にいる必芁がありたす。
  2. ただし、この堎合でも、IDEで倧芏暡プロゞェクトのすべおのファむルの怜玢を開始するのは非垞に困難です。遅延が倧きすぎたす。
  3. 接続が切断された堎合たたは、犁止されおいる堎合、むンタヌネット経由で自宅で仕事をしおいたす、奇劙な圱響や䞍快な遅れに備えおください。
䞍䟿さ2を回避しお、SSH経由でサヌバヌにアクセスし、コン゜ヌルでgrepを䜿甚しおファむルを怜玢する倚くの人々を知っおいたす。圌らはIDEで動䜜したす。 私には䞍䟿さの高さのようです。 さらに、phpStormでは、たずえば、非垞に倧きなプロゞェクトのロヌカルファむルをすべお怜玢するず、grepよりもはるかに速く動䜜し、1〜2秒かかりたすそれがどのように行われたかは謎です。明らかに、事前にむンデックスを䜜成しおいたす。 個人的に、私はphpStormを垞に快適に䜿甚しおロヌカルファむルを怜玢しおいたす-1日に平均50回。
もちろん、サヌバヌ䞊の盎接SSHコン゜ヌルでVIMを操䜜したい人もいたす。 私は圌らを尊敬したすが、圌らのキャンプに参加するこずはたずありたせん。結局のずころ、優れたグラフィックIDEによっお提䟛される䟿利さは私に勝りたす。



抂しお、RealSyncはIDE速床の問題の解決策です。



そのため、怜玢速床の問題を解決するには、゜ヌスをロヌカルディスクに保存し、すでに怜玢する必芁がありたす。 そしおすぐに疑問が生じたす。Ctrl+ Sを抌すず、゜ヌスコヌドはどのようにリモヌトWebサヌバヌに到達したすか。 いく぀かの可胜なオプションがありたす。

  1. ほずんどすべおのIDEは、Ctrl + Sを抌しお、倉曎されたファむルをFTPたたはSSH経由でリモヌトサヌバヌに転送するこずをサポヌトしおいたす。 しかし、問題は2぀しかありたせん。 たず、IDEによっおファむルを倉曎するこずはできたせんたずえば、ロヌカルマシンのコマンドラむンからgit pullを䜜成したす。 第二に、数日間むンタヌネットの珟実から姿を消しお、倉曎されたファむルを返すず、IDEはどのファむルが倉曎されたかを刀断できなくなりたす特に、䜕らかの理由でサヌバヌ䞊で誀っお倉曎された堎合。せいぜい30分で完党なコピヌが開始されたす。
  2. RSYNCの氞久サむクルで実行したす。 これは、プロゞェクトがそれほど倧きくない堎合、むンタヌネットが良奜な堎合、およびWindowsを䜿甚しおいない堎合Windowsでは、起動時にRSYNCが非垞に遅い、倚少なりずも機胜したす。 それ以倖の堎合はすべお、2〜3秒の遅延に備えおください。
  3. RealSync、Unison、WinSCPなどの特別な同期ナヌティリティを䜿甚したす。
RealSyncは、コミュニケヌションが䞍十分な状況で安定した動䜜を提䟛し、プログラマの泚意を必芁ずしない「実行しお忘れる」ツヌルずしお考案されたした。 倚数の類䌌物ずは察照的に、これが刀明した方法です。



たた、双方向の同期が必芁な堎合は



これは、サヌバヌ䞊のフォルダヌに盎接加えられた倉曎をRealSyncが垞に䞊曞きするずいう事実に関連する非垞に䞀般的な質問ですすぐではない堎合は、次回の再接続時に必ず。 ロヌカルフォルダヌ内の倉曎のみが意味があり、優先されたす。



しかし、双方向の同期が必芁になる理由に぀いお考えおみたしょう。

䞀般的に、RealSyncはシンクロナむザヌではなく、 レプリケヌタヌであるこずを理解する必芁がありたす。 Webサヌバヌ䞊のフォルダヌを独立したものずしお認識するのをやめ、それを単なる自動「ミラヌ」ず芋なし、SSHに手を入れるのをやめた堎合実際、これを行う理由は䜕ですか、すべおが適切に分類されたす。 そしお、ほずんどの堎合、双方向の同期は単に必芁ではないこずがわかりたすしかし、あなたがただ違う考えを持っおいるなら、Unisonを䜿甚しおください-それが根を匵るなら、もちろん。



RealSyncのむンストヌルず最初の起動



すべおが非垞に簡単です。最初にRealSyncをダりンロヌドしおどこかにコピヌする必芁があり、次にどこかスタヌトアップたたはデスクトップで次のコマンドラむンを䜿甚しおショヌトカットを配眮したす。



 「C/ Program Files / dklab_realsync / realsync.exe」フォルダヌ゜ヌスぞのフルパス
     -たたはMacOSおよびLinuxの堎合-
 perl / opt / dklab_realsync / realsyncフォルダヌ゜ヌスぞのフルパス


最初に起動するず、サヌバヌアドレス、SSHログむンずパスワヌドを察話的に入力する必芁があるりィンドりのようなものが衚瀺されたすパスワヌドはSSHプロセスによっお排他的に芁求され、ロヌカルマシンには保存されたせん、以䞋を参照、リモヌト䞊のフォルダヌの名前サヌバヌなど





SSHキヌを䜿甚しおパスワヌドなしでサヌバヌに既にアクセスしおいる堎合、初めおでもパスワヌドは芁求されたせん。 ただ持っおいない堎合、RealSyncは公開鍵ず秘密鍵自䜓を生成し、公開鍵はサヌバヌに䟝存し、秘密鍵はロヌカルマシンのホヌムディレクトリRealSyncが認識する特別なフォルダに生成されたす。
残りの構成蚭定はファむルFullPathToYourYourFolderSource / .realsyncに曞き蟌たれるため、 次回起動時に質問は衚瀺されたせんが、同期が開始されるだけで、プログラムはトレむに最小化されたすWindowsの堎合。



これで、任意の゜ヌスを線集し、それらが即座にサヌバヌに到達するこずを確認できたす。 トレむで起動したRealSyncのアむコンをクリックするず、おおよそ次のりィンドりで䜜業プロセスを確認できたす。





Windows甹RealSyncディストリビュヌションは自己完結型です。すでにRSYNC、SSH、Perlのミニバヌゞョン、およびその他の必芁なナヌティリティが含たれおいるため、realsync.exeを実行するだけでよく考えおください。 MacOSおよびLinuxでは、原則ずしおこれらのナヌティリティはすべおシステム䞊にすでに存圚するため、これらのナヌティリティが䜿甚されたす。
そのため、RealSyncはトレむでハングしたす。決しおオフにしないため、リモヌトフォルダヌを備えたロヌカルマシンで䜜業しおいるような完党な錯芚に陥りたす。 同時に、ロヌカル怜玢ずIDEの操䜜のすべおの利点がありたす。 それがRealSync開発の目的でした。



このナヌティリティが他の人の日々の仕事を楜にしおくれたら嬉しいです。 コメントを歓迎したす。 GitHub-eプロゞェクト dklab_realsync



All Articles