GNU/Linux >> Linux の 問題 >  >> Linux

Syncthingを使用して複数のシステム間でファイルを同期する

このステップバイステップのチュートリアルでは、 Syncthingとは何かを学びます。 、LinuxにSyncthingをインストールする方法、Syncthingを使用して複数のシステム間でファイルをリアルタイムで同期する方法、そして最後に一般的なSyncthingの問題をトラブルシューティングする方法。

1。 Syncthingの紹介

Syncthingは、無料のオープンソースのピアツーピア(P2P)ファイル同期プログラムであり、LAN内の2つ以上のデバイス間、またはインターネット経由のリモートデバイス間でファイルを安全に同期できます。

デバイスは、デスクトップシステム、サーバー、または携帯電話である可能性があります。 1つのデバイスで行われた変更(ファイルの作成、変更、削除など)は、他のデバイスに自動的に複製されます。

Syncthingは設定を必要としません!箱から出してすぐに機能します。各デバイスはIDで識別されます 。ファイルを交換するには、デバイスIDを指定するだけです。

これはP2Pファイル同期プログラムであるため、データはパブリッククラウドや中央サーバーにアップロードされません。 Syncthingは、デバイスが同時にオンラインになっているときに、デバイス間でデータを交換するだけです。

Syncthingはプラットフォームに依存しないアプリケーションであるため、同じまたは異なるOSで実行されている複数のコンピューター間でファイルを同期したり、コンピューターとモバイルデバイス間でファイルを同期したりできます。 1つのフォルダを異なるデバイスの複数の場所に同期することもできます。

Syncthingファイル同期ツールはGoで書かれています プログラミング言語。 GNU / Linux、Mac OS、Solaris、およびBSDのいくつかのバージョンで動作します。

モバイルデバイスとコンピューター間でファイルを同期したい人のために利用できる公式のSyncthingAndroidアプリもあります。

ヘッズアップ: Syncthingはローカル同期をサポートしていないことに注意してください 。意味-同じシステム上のフォルダ間でファイルを同期することはできません。ローカル同期を実行する場合は、 rsyncのいずれかを使用することを検討してください またはユニゾン

1.1。 Syncthingはどのように機能しますか?

Syncthingは、ファイルをブロックと呼ばれる複数の部分に分割します それらをあるデバイスから別のデバイスに転送します。したがって、トレントプロトコルと同様に、複数のデバイスが同期負荷を共有できます。したがって、データ転送速度は通常高速です。オンラインのデバイスが多いほど、データ転送速度は速くなります。

ファイルの内容が同時に変更され、ローカルデバイスとリモートデバイスで異なる場合、競合が発生します。 Syncthingは、ファイルの1つを<filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>に名前変更することにより、ファイルの競合を効率的に処理します。 。

通常、変更時刻が古いファイルは競合ファイルとしてマークされ、名前が変更されます。変更時間が等しい場合、device IDの最初の63ビットの値が大きいデバイスから発信されたファイル 競合するファイルとしてマークされます。

競合がファイルの変更と削除の間にある場合、変更されたファイルは、削除されたデバイスで名前を変更せずに復元されます。

Syncthingのもう1つの注目すべき点は、宛先ファイルに直接書き込むことは決してないということです。古いバージョンを上書きする前に、データの一時的なコピーを作成します。ファイル転送が正常に完了すると、一時ファイルは削除されます。

ファイルの同期中にエラーが発生した場合、一時ファイルはデフォルトで24時間保持されます。もちろん、都合に合わせてこの設定を変更することもできます。一時ファイルの名前は、.syncthing.original-filename.ext.tmpです。 デフォルトでは非表示になっています。

すでに述べたように、Syncthingは2つのデバイス間でファイルを直接転送します。 2つのデバイス間で直接接続を確立できない場合、Syncthingはリレーを介してデバイスを接続します 。

中継された接続は、 TLSを使用して暗号化されます デバイス間でデータを安全に転送するための暗号化方式。 Block Exchange Protocolという名前の独自の無料プロトコルを使用して、すべてのデバイスとの通信を確立します。

2。 Syncthing機能

Syncthingのコア機能を以下に示します:

  • プライベート -データは、構成されたデバイス以外の場所に複製されることはありません。
  • 安全 -デバイス間のすべての通信はTLSで暗号化されています。
  • 認証 -すべてのデバイスは、一意のデバイスIDで識別されます。デバイスIDは、アドレス解決、認証、および承認に使用されます。クラスタに接続できるのは、明示的に許可したデバイスのみです。
  • 透明性 --Syncthingはオープンソースプロジェクトです。そのため、誰でもコードを調べて、Syncthingが同期する他のアクティブなデバイスを見つける方法、ノード間でデータを転送する方法、異なるデバイス間でデータを同期する方法を理解できます。
  • コスト --Syncthingは、クラウドレスの分散型ファイル共有アプリケーションです。支払うべき中央サーバーやクラウドサービスはありません。だから、それは完全に無料です!
  • 制限 -制限はありません。デバイスに十分な空きディスク容量がある限り、任意のサイズのファイルを無制限に共有できます。
  • クロスプラットフォーム およびポータブル --Syncthingはプラットフォームに依存しません。 Linux、Windows、Solaris、BSD、Androidなどの多くのオペレーティングシステムで動作します。

3。 LinuxにSyncthingをインストールする

同期を維持したいすべてのシステムにSyncthingをインストールする必要があります。

Syncthingは多くのLinuxディストリビューション用にパッケージ化されており、公式リポジトリで入手できます。

SyncthingをArchLinuxにインストールするには EndeavourOSやManjaroLinuxなどのバリアントは、次のように実行されます。

$ sudo pacman -S syncthing

Debian、Ubuntuの場合:

$ sudo apt install syncthing

Ubuntuでは、[universe]を有効にする必要があることに注意してください Syncthingをインストールするためのリポジトリ。

RHEL 8、CentOS 8、AlmaLinux 8、Rocky Linux 8、Fedora 31以降のバージョン:

[EPEL]を有効にする リポジトリ:

$ sudo dnf install epel-release

次に、次のコマンドを使用してsyncthingをインストールします。

$ sudo dnf install syncthing

CentOS 7および6エディションでは、次のセクションで説明するように、コンパイル済みのバイナリからSyncthingをインストールできます。

openSUSE:

$ sudo zypper install syncthing

3.1。バイナリからSyncthingをインストールする

デフォルトのリポジトリでSyncthingを使用できない場合は、コンパイル済みのバイナリをリリースページからダウンロードできます。 、それを$PATHに移動します 以下に示すように。

$ wget https://github.com/syncthing/syncthing/releases/download/v1.11.1/syncthing-linux-amd64-v1.11.1.tar.gz

抽出:

$ tar xvf syncthing-linux-amd64-v1.11.1.tar.gz

そして、それを$PATHに移動します 、たとえば/usr/local/bin/

$ sudo cp syncthing-linux-amd64-v1.11.1/syncthing /usr/local/bin/

正しくインストールされているかどうかを確認するには、次のコマンドを使用してバージョンを表示してみてください。

$ syncthing --version

以下のような出力が表示された場合は、おめでとうございます。 Syncthingが正常にインストールされました!!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected] 2020-11-03 11:29:54 UTC

3.2。 syncthing-gtkクライアントをインストールします

Syncthingには、 syncthing-gtkという名前のグラフィカルユーザーインターフェイスもあります 。デスクトップ通知が必要で、Nautilus、Nemo、Cajaなどのファイルマネージャーと統合する場合は、syncthingGTKグラフィカルインターフェイスをインストールします。

Syncthing-gtkは公式リポジトリで利用できるため、Linuxディストリビューションのデフォルトのパッケージマネージャーを使用してインストールすることもできます。たとえば、Debianベースのシステムにsyncthing-gtkをインストールするには、次のコマンドを実行します。

$ sudo apt install syncthing-gtk

Syncthing-gtkが公式リポジトリで利用できない場合は、代わりにflatpakアプリを入手してください。 flatpakがインストールされていることを確認してください Linuxマシンで次のコマンドを実行して、syncthing-gtkをインストールします。

$ flatpak install flathub me.kozec.syncthingtk

4。すべてのデバイスでSyncthingを初期化します

このガイドでは、次の2つのシステムを使用します。

システム1:

Operating system   - Ubuntu 20.04 LTS desktop system
Hostname           - ostechnix
IP Address         - 192.168.225.37/24

システム2:

Operating system   - Fedora 32 silverblue desktop
Hostname           - toolbox
IP Address         - 192.168.225.46/24

同期を維持するすべてのシステムで、次の手順を実行する必要があります。

ターミナルを開き、Syncthingを実行して初期化します:

$ syncthing

Flatpakを使用してSyncthingをインストールする場合は、次のコマンドを実行してSyncthingを起動します。

$ flatpak run me.kozec.syncthingtk

Syncthingを初めて実行すると、必要なキーが生成され、デフォルトの構成ファイルが作成され、 "Sync"という名前のデフォルトの同期フォルダーがセットアップされます。 $HOMEで ディレクトリ。

Syncthingを最初に初期化したときのUbuntuデスクトップシステムからの出力例は次のとおりです。

[monitor] 17:23:06 INFO: Starting syncthing
[start] 17:23:06 INFO: Generating ECDSA key and certificate for syncthing...
[R7FIO] 17:23:06 INFO: syncthing unknown-dev "Erbium Earthworm" (go1.13.5 linux-amd64) [email protected] 1970-01-01 00:00:00 UTC
[R7FIO] 17:23:06 INFO: My ID: R7FIOSA-3ZO6FLJ-LFBAVWM-LUEDOR2-RPDXXH7-4P2HFWX-QCWBN4D-ENEGIAY
[R7FIO] 17:23:07 INFO: Single thread SHA256 performance is 118 MB/s using minio/sha256-simd (88 MB/s using crypto/sha256).
[R7FIO] 17:23:07 INFO: Default folder created and/or linked to new config
[R7FIO] 17:23:07 INFO: Default config saved. Edit /home/sk/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[R7FIO] 17:23:07 INFO: Hashing performance is 103.85 MB/s
[R7FIO] 17:23:07 INFO: Starting deadlock detector with 20m0s timeout
[R7FIO] 17:23:07 INFO: No stored folder metadata for "default": recalculating
[R7FIO] 17:23:07 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[R7FIO] 17:23:07 INFO: Overall send rate is unlimited, receive rate is unlimited
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: TCP listener ([::]:22000) starting
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[R7FIO] 17:23:08 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[R7FIO] 17:23:08 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
[R7FIO] 17:23:08 INFO: Creating new HTTPS certificate
[R7FIO] 17:23:08 INFO: GUI and API listening on 127.0.0.1:8384
[R7FIO] 17:23:08 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[R7FIO] 17:23:08 INFO: My name is "ostechnix"
[R7FIO] 17:23:18 INFO: Detected 0 NAT services
[R7FIO] 17:24:42 INFO: Joined relay relay://210.23.25.77:22067
>

初期化が完了すると、SyncthingWebGUIがデフォルトのブラウザで自動的に開きます。

上のスクリーンショットでわかるように、SyncthingのWebインターフェイスは非常に理解しやすく使いやすいです。ほとんどのオプションは自明です。

Webインターフェイスには、

という3つのセクションがあります。
  1. フォルダ、
  2. このデバイス
  3. およびリモートデバイス。

「フォルダ」 セクションには、共有フォルダのリストが表示されます。デフォルトでは、デフォルトの共有ディレクトリ~/Sync ここにリストされています。

「このデバイス」 セクションには、コンピューターの名前、ダウンロード/アップロードレート、RAM / CPU使用率、合計稼働時間などの詳細が表示されます。

[デバイス]セクションの下に、[リモートデバイス]という名前の別のセクションがあります。 同期するすべてのリモートデバイスを追加できるセクション。まだデバイスを追加していないため、空で表示されます。

Syncthing Webインターフェースの上部で、希望する言語を選択し、ヘルプセクションを開いて、アクションでさまざまな管理タスクを実行できます。 タブ。

[アクション]タブから構成できるもののリストを以下に示します。

  • デバイス名を変更します
  • APIキーを生成します
  • $HOMEディレクトリに最低限必要な空きディスク容量
  • 匿名の使用状況レポートを有効または無効にします
  • デフォルトのフォルダパスを変更します
  • GUIリッスンアドレスを変更します
  • GUI管理者のユーザー名とパスワードを設定します
  • HTTPSを有効にする
  • 着信および発信レート制限を設定します
  • 同期から無視するデバイスまたはフォルダを追加します
  • その他

[アクション]タブのほとんどのオプションはそのままにしておく必要があります。デフォルトの構成で十分です。すべてのオプションに精通している場合は、必要に応じて変更してください。

次に、他のシステムに移動し、Syncthingを初期化して、必要な構成ファイルを生成し、デフォルトの同期フォルダーを作成します。

次のコマンドを使用して、現在構成されている同期パスを表示できます。

$ syncthing --paths

出力例:

Configuration file:
	/home/sk/.config/syncthing/config.xml

Database directory:
	/home/sk/.config/syncthing/index-v0.14.0.db

Device private key & certificate files:
	/home/sk/.config/syncthing/key.pem
	/home/sk/.config/syncthing/cert.pem

HTTPS private key & certificate files:
	/home/sk/.config/syncthing/https-key.pem
	/home/sk/.config/syncthing/https-cert.pem

Log file:
	-

GUI override directory:
	/home/sk/.config/syncthing/gui

Default sync folder directory:
	/home/sk/Sync

4.1。 SyncthingWebGUIの管理ユーザー名とパスワードを設定する

デフォルトでは、ユーザー名とパスワードなしでSyncthingWebGUIにアクセスできます。 Syncthingインスタンスを少し安全にするには、管理ユーザーとパスワードを設定します。

[アクション]をクリックします 右上隅のタブで、[設定]を選択します ドロップダウンメニューから。

「GUI」の下 タブで、管理ユーザー名とそのパスワードを入力します。パスワードが強力で、推測しにくいことを確認してください。 「GUIにHTTPSを使用する」も有効にします オプション。

[保存]ボタンをクリックして、管理者ユーザーアカウントを作成します。

次に、Webブラウザーを更新すると、証明書の警告メッセージが表示されます。これは、WebGUIに対してHTTPSを有効にしたばかりだからです。

この警告を回避するには、[詳細]をクリックします ボタンをクリックしてから、「リスクを受け入れて続行する」をクリックします。 ローカルホストを例外リストに追加するオプション。

次に、管理ユーザー名とそのパスワードを入力して、SyncthingWebGUIにアクセスします。

syncthing-gtkクライアントを起動してSyncthingを初期化することもできます。

2台目のマシンで同じ手順を繰り返して、WebGUIの管理者ユーザーを設定します。

5。 Syncthingを使用して複数のシステム間でファイルを同期する

次のコマンドを実行して、両方のマシンでSyncthingを開始します。

$ syncthing

SyncthingWebGUIはデフォルトのブラウザで自動的に開きます。

システム間でファイルを同期するには、device IDを使用してファイルをペアリングする必要があります 。デバイスIDは、[アクション]タブで確認できます。

これが私のUbuntu20.04デスクトップマシンのデバイスIDです:

2つのシステムを相互に通信させるには、上記のIDを他のシステムと交換する必要があります。

これを行うには、[リモートデバイスの追加]をクリックします [リモートデバイス]セクションのボタン。

次の画面に近くのシステムのデバイスIDが表示されます。デバイスIDをクリックして、現在のシステムとペアリングします。

次に、「共有」に移動します タブをクリックし、現在のデバイスと共有するフォルダを選択します。オプションで、「自動承認」を確認できます。 このデバイスがデフォルトのパスでアドバタイズするフォルダを自動的に作成または共有するためのボックス。参考までに、デフォルトの共有パスは~/Syncです。 。

「詳細」 タブで、圧縮方法を選択し、デバイスレート制限を設定できます。

最後に、[保存]をクリックします system2とsystem1マシンをペアリングするためのボタン。

デバイスIDが表示されない場合に備えて、system2から手動でコピーして、ここに貼り付けてください。

他のシステム(つまり、system2)では、最初のシステムを追加するように求める通知メッセージが表示されます。 [デバイスの追加]をクリックします リクエストを受け入れてペアリングします。

同様に、system2で上記の手順を繰り返して、system1マシンとペアリングします。両方のシステムを正常にペアリングすると、[リモートデバイス]の下にリストが表示されます。 SyncthingWebインターフェイスのセクション。

ここでは、「ツールボックス」 私のFedoraデスクトップの名前です。

また、「最新」も行います リモートデバイスの横と「デフォルトフォルダ」の横にあるメッセージ 左ペインのタブ。意味-同期する準備ができています!

共有フォルダの詳細を表示するには、「デフォルトフォルダ」をクリックします。 左側のペインのタブで展開します。共有フォルダのさまざまな詳細が表示されます。

  • 共有フォルダID、
  • 共有フォルダパス
  • フォルダの状態
  • 定期スキャン間の時間間隔
  • 現在共有されているデバイス
  • 最後のスキャンの時間など

これで完了です。 Synchthingを両方のシステムに正常にインストールして構成し、両方を相互にペアリングしました。

これからは、~/Syncに入れたものは何でも 一方のシステムのフォルダは、もう一方のシステムに同期されます。 Syncthingインターフェースから同期の進行状況を確認できます:

~/Syncから何かを作成、変更、または削除するときはいつでも いずれかのシステムのフォルダにある場合、変更は他のシステムに自動的に複製され、その逆も同様です。

同期が完了したら、Syncthing Webインターフェイスを閉じて、syncthingを終了します。 Ctrl+Cを押してコマンドを実行します 。

5.1。新しい共有フォルダを作成する

複数の共有ディレクトリを作成し、それらすべてを他のペアのデバイスと同期することができます。

新しい共有ディレクトリを作成するには、[フォルダの追加]をクリックします 「フォルダ」の下 左側のセクション。

「一般」 タブで、他のデバイスと共有するフォルダーラベル、フォルダーID、フォルダーパスを入力します。

次に、「共有」に移動します タブをクリックし、このフォルダを共有するデバイスを選択します。

共有フォルダを送信専用または受信専用、あるいは送信と受信の両方に設定することもできます。このオプションは、「フォルダタイプ」で使用できます。 「詳細」のドロップダウンボックス タブ。

最後に、[保存]をクリックします この共有をアクティブにするボタン。

新しい共有ディレクトリが「フォルダ」の下に表示されます。 セクション。 [編集]をクリックすると、いつでも共有フォルダの設定を変更できます。 ボタン。

5.2。ファイアウォールを構成する

サードパーティ、ローカルファイアウォール、またはルーターの背後にいる場合は、ポート 22000 / TCPを許可します および21027/ UDP 着信および発信トラフィック用。すべてのシステムでこれを行う必要があることに注意してください。

ufwを設定した場合 (複雑でないファイアウォール)Linuxマシンでは、次のコマンドを使用してSyncthingポートを許可できます。

$ sudo ufw allow syncthing

firewalldを使用している場合 、次に次のコマンドを実行して、必要なポートを開きます。

$ sudo firewall-cmd --zone=public --add-service=syncthing --permanent

最後に、firewalldを再起動します 変更を有効にするサービス:

$ sudo firewall-cmd --reload

5.3。リモートWebGUIを有効にする(オプション)

WebGUIのデフォルトのポートは8384 。 URL http://localhost:8384に移動すると、SyncthingWebGUIにアクセスできます。 またはhttp://127.0.0.1:8384 Webブラウザから。

デフォルトでは、SyncthingWebGUIにはローカルホスト自体からのみアクセスできます。ネットワーク内の他のシステムからWebGUIにアクセスする場合は、ポート 8384を許可する必要があります。 ローカルファイアウォール/ルーター内。

ufwを使用している場合 、次のコマンドを実行して、syncthing-guiを許可します サービス:

$ sudo ufw allow syncthing-gui

同様に、firewalldを介してSyncthingWebGUIへの外部アクセスを許可できます。 以下のように:

$ sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

変更を適用するには、firewalldサービスを再起動します。

$ sudo firewall-cmd --reload

ファイアウォール経由でデフォルトのポートを許可した後、GUI listen addressを変更します 127.0.0.1:8384からウェブGUIを介して to 0.0.0.0:8384

または、Syncthing config.xmlを編集します ファイル:

$ nano ~/.config/syncthing/config.xml

次の行を見つけます:

<address>127.0.0.1:8384</address>

そして、次のように変更します:

<address>0.0.0.0:8384</address>

CTRL+Oを押します 続いてCTRL+X ファイルを保存して終了します。

これで、"https://IPAddress:8384"を使用して、任意のリモートマシンからWebGUIにアクセスできます。 URL。

ヘッズアップ: これはオプションであり、リモートWebGUIアクセスを有効にすることはお勧めしません。これにより、システムが公開されます。システムが信頼できるネットワーク内にある場合にのみ、すべてのシステムへのWebGUIアクセスを有効にします。

また、管理者ユーザーがWeb GUIにログインするように設定し、「GUIにHTTPSを使用する」が有効になっていることを確認してください。 前述のオプション。

5.4。 SSH経由のトンネリング

SSH経由で両方のシステムにアクセスできる場合は、SSHトンネルを介してローカルマシンでリモートシステムのWebGUIにアクセスできます。 SyncthingのWebGUIポートを外の世界に開くよりも少し安全です。

SSHトンネルを開始するには、次を実行します。

$ ssh -L 9999:127.0.0.1:8384 [email protected]

"[email protected]"を置き換えます リモートユーザー名とIPアドレスを使用します。これにより、ローカルポート9999にバインドされ、そこからすべての接続がターゲットマシンのポート8384に転送されます。これは、Syncthingがローカルホストでのみリッスンするようにバインドされている場合でも機能します。

これで、https://localhost:9999/に移動して、ローカルシステムからリモートWebGUIにアクセスできるようになります。 。

5.5。 Syncthingの自動起動

何かを同期したいときはいつでも、syncthingインスタンスを手動で開始する必要があります。再起動するたびに自動的に起動する場合は、次の手順を実行します。

新しいsystemdを作成します 同期のためのサービス:

$ sudo nano /etc/systemd/system/[email protected]

その中に次の行を追加します:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

"ExecStart=/usr/local/bin/syncthing"を置き換えます syncthing実行可能ファイルの正しいパスを使用します。

ディストリビューションのパッケージマネージャーを使用してSyncthingをインストールした場合、実行可能パスはここから入手できます-/usr/bin/syncthing

コンパイル済みのバイナリからsyncthingをインストールする場合、パスは"/usr/local/bin/syncthing"になります。 。

正しいパスを更新したら、ファイルを保存して閉じます。

次に、systemdをリロードします コマンドを使用するユニット:

$ sudo systemctl daemon-reload

最後に、syncthingサービスを開始し、システムの再起動時に自動的に開始できるようにします。

$ sudo systemctl start [email protected]$USER
$ sudo systemctl enable [email protected]$USER

コマンドを使用してSyncthingが実行されているかどうかを確認します:

$ sudo systemctl status [email protected]$USER

CentOSボックスからの出力例:

● [email protected] - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-24 18:07:34 IST; 1s ago
     Docs: man:syncthing(1)
 Main PID: 10932 (syncthing)
    Tasks: 11 (limit: 11480)
   Memory: 20.8M
   CGroup: /system.slice/system-syncthing.slice/[email protected]
           ├─10932 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
           └─10937 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Scheduled restart job, restart counter is at 23.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Stopped Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Started Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [start] INFO: syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected]>
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: My ID: 4ZC47V7-KW3P2BH-FSLG3QN-2D2W3OO-LI2KEQ5-JJOBXWY-QMFOAI3-FP>
Nov 24 18:07:35 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: Single thread SHA256 performance is 117 MB/s using minio/sha256-s>
lines 1-18/18 (END)

今後、Syncthingは起動時に自動的に起動し、構成されたシステム間でファイルを同期します。

5.6。トラブルシューティング

データベースエラーが発生し、Syncthingがデバイス間のファイルの同期を拒否する場合があります。このような場合、次のコマンドを使用して、ファイルを強制的に再スキャンし、データベースを再同期できます。

$ syncthing -reset-database

6。結論

LinuxでSyncthingを使用して複数のシステム間でファイルを同期する方法をマスターしました。ご覧のとおり、Syncthingを使用したファイル同期は非常に簡単で簡単です。

データを保存するために利用できるクラウドサービスはたくさんありますが、プライバシー、セキュリティ、および貴重なデータの制御の欠如について多くの懸念があります。

Syncthingのおかげで、より安心できるようになりました。中央サーバーはなく、盗聴もありません。あなたはあなた自身のデータを管理します!


Linux
  1. Ventoy:複数のISOファイルを使用してマルチブートUSBドライブを作成する方法

  2. 恐ろしい状況–複数の独立したOSインスタンスによって同時にマウントされたファイルシステム?

  3. rsyncを使用してファイルを同期する

  1. CloudCross –ファイルとディレクトリを複数のクラウドストレージと同期する

  2. EasyJoin –インターネットなしであなたの電話とPCの間でファイルを送る

  3. SDKMAN を使用して複数の Java バージョンをインストール/切り替える方法

  1. Dd:複数の入力ファイル?

  2. 複数行が連続するテキストファイルを並べ替える

  3. 複数のリモート ファイルを追跡する