Syncthingを使ってみる、その6:ありがちなトラブル

2023年1月31日

トラブルとその解消について、何かしら発生したらこの記事に追加していく予定。

長過ぎるファイル名

Syncthingで最もありがちなトラブルとしては、これはNextCloudにも共通するものだが、ファイル名が長過ぎるというものだ。経験から、これはWindowsのファイルをLinuxに同期させようとする時に起こり、根本原因としては、LinuxよりもWindowsの方が長いファイル名を許しているからだろう。

同期先のhulkのSyncthingを見てみると、以下の通り、非同期(英語の場合はOut of Sync)になっており、5項目が同期されていない。

この5項目は何かとクリックしてみると、以下が表示される。

たしかに、ファイル名が長過ぎるようだ。再度だが、これはNextCloudでもよくある。

同期元のNatashaの方を見てみると、以下の表示だ。まず、同期元のフォルダは当然問題無い。

Natasha内の接続先hulkを見てみると

そして、同期されていない項目を見てみると、「hulkに同期が必要」と5項目がある。

ともあれ、これらのファイル名を修正すれば、自動的に再同期される。

エラー内容不明

一つの巨大なファイル(60GB程度)を同期させようとしたが、失敗している。「非同期」になっている。特に長いファイル名でも無い。

Where to find the log files – frequent sync-conflict filesによれば、syncthing -pathsでログファイルの場所がわかるそうだ。

しかし、

$ syncthing -paths
Configuration file:
    /home/ysugimura/.config/syncthing/config.xml

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

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

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

Log file:
    -

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

Default sync folder directory:
    /home/ysugimura/Sync

デフォルトでは、標準出力にログが出力されるそうだ。

syncthing -logfile ファイルパス

でログファイルを指定できるが、今のところ何が悪いのか全くわからない。

ディスク満杯

理由不明で同期ができていない。完全にストップする。

以下のように、Ultramanから本マシンspidermanに同期させたいのだが、いつまでたっても速度は0のまま、変化しても1B/sという情けない値しか表示されない。

ディスクの状態を見てみると、まだ18GBバイトも残っている。

ここでピンときたかもしれないが、ログを見るとこうだった。

ディスクスペースが不十分だと言ってるのだが、最初に出ているのは、「current 1.00% < required 1%」。つまり、1.8TBのディスクで残りが18GBしかない、残り1%になってしまってるのが原因だった。

これはフォルダの「高度な設定」でデフォルトで指定されていた。

しかし、この制限に引っかかって、実際に同期が停止しているのに、GUI画面では、何が悪いのか何も言ってくれない

どうしても同期してくれない

おそらく上記のディスク満杯の影響だろうか。ディスクを空けても、Syncthingを再起動しても一切同期してくれない。これはどうやってもだめで、ログにも何も出力されなかった。

この場合には、「最初からやりなおす」。まず、受ける側のPCであるAのフォルダを除去する。つまり、同期をとりやめる。

これだけでは、A側の中途半端に受け取った実際のフォルダは削除されないので、きれいさっぱり削除しておく。

送信する側PCであるBの、Aへのフォルダ共有をいったんやめる。

両方のSyncthingを再起動し、再度BからAへのフォルダ共有を設定する。