luckman212 Posted May 30, 2019 Report Share Posted May 30, 2019 I noticed today just by accident that one of my folders was stuck at 100% - sync was not completing for some reason. I had to enable debug mode and found a file that had a weird resource fork for whatever reason was causing the sync to hang. I deleted that file, restarted Sync on both ends and it was green again. So the question is: I would like to know if there is any way to get the sync status via command line / Terminal / bash? I would make a periodic script (cron, LaunchAgent on mac etc) to run and if the sync is not complete then maybe pop a notification, send an alert to Pushover etc. Bonus points if the command could output in an easy to parse format such as JSON. maybe e.g.: $ rslsync --status [foldername] { "status": [ { "name": "folder1", "peer_count": 4, "sync_complete": false, "unsynced_files": 2, "file_count": 4124, "total_bytes": 104230636, "last_change": 1559231815 }, { "name": "folder2", "peer_count": 3, "sync_complete": true, "unsynced_files": 0, "file_count": 192, "total_bytes": 5263463, "last_change": 1559215804 } ] } (In the above example, last_change represents a timestamp in Unix epoch time) I see there is (was?) an API but I am not sure if it's supported anymore and I checked the API docs and don't see any method there to query for sync status anyway. This would be so useful... please Quote Link to comment Share on other sites More sharing options...
luckman212 Posted July 2, 2020 Author Report Share Posted July 2, 2020 Coming back 1 year later to this idea 🙂 Today I again found that one of my folders was no longer syncing - it had a red Exclamation (!) mark and said Database error (link to KB article: https://helpfiles.resilio.com/dbaseerr) I had to Disconnect, manually sync the folders on all peers using rsync, and then re-connect to clear this up. RslSync version was 2.7.1 on all peers. Apparently the sync had been broken for >1 week and I was not aware of it. Some sort of API / alerts / commandline method to query status would have really helped here! Is there any chance this could be coming in the future? Quote Link to comment Share on other sites More sharing options...
luckman212 Posted July 2, 2020 Author Report Share Posted July 2, 2020 a little more... After reading this page again, it seems like maybe there is an API but it is quite hidden and difficult to enable(?). Looks like possibly if the `api_key` value is configured in sync.conf then the API might be enabled. But, there is no sync.conf anymore, just bencoded settings.dat which is protected with salted hash. At this page, there is a link to Python2 script btsync_edit_settings_w4.py which can decode the encrypted settings.dat file—but how can this be turned back into a valid settings.dat? Reading this page it looks like it may be possible to run Sync in configuration mode by placing a copy of sync.conf in the Storage Folder(?). But again, how to take a configured settings.dat and convert to plaintext sync.conf format? I am not sure if this is the right path to take to enable the API? Please Help @RomanZ or @Helen ! 🙂 Quote Link to comment Share on other sites More sharing options...
luckman212 Posted July 26, 2020 Author Report Share Posted July 26, 2020 https://github.com/bt-sync/sync_api_sample/issues/2 Quote Link to comment Share on other sites More sharing options...
davidem Posted January 23, 2022 Report Share Posted January 23, 2022 Perhaps my respons is a bit late, but I agree it would have been nice if Resilio Sync had a status options. But... it is possible to get the overall sync status. In .config/resilio-sync/storage/ there's a file called 'sync.log', where among a lot of noise the sync status is kept. I say noise, because I have no interest is 99% of the file. With the following ugly command (I'm normally no fan of "grep|awk|tail|awk", but hey, it works) I get the latest status, to see if syncing is done and to decide if I can shutdown my raspbery pi dashcam 😎 grep -Pzo '.*'"`date --date="-2 min" "+%Y%m%d %H:%M"`"'(.*\n)*' /home/pi/.config/resilio-sync/storage/sync.log | awk '/ScheduledTask/&&!/ConnectMorePeers/&&!/ExpireFailedDownloads/'| tail -n 1 |awk -F ":" '/UpdatePeersStat/{print $NF}' My script runs every 2 minutes, so I'm only interested in status changes within the last 2 minutes. If the output is "FinishStateSync", syncing is finished. Anything else means it is still not 100% done. I hope this helps, even after all this time Quote Link to comment Share on other sites More sharing options...
davidem Posted January 23, 2022 Report Share Posted January 23, 2022 Lol, I see now I had the same question in 2019: Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.