device a contains 111188 files 22426 folders ~316 GiB data
(after ignoring certain files via .stignore)
device b contains 0 files 22426 folders ~2.74 MiB data
most folders do actually contain the files they are supposed to, but don’t seem to be recognized by syncthing itself. all those files’ name have this pattern .syncthing.*.tmp, i.e. .syncthing.1-11 Alkohol.mp3.tmp.
therefore, the ~2.74 MiB of data are a mistake; according to device a, ~190 GiB of data have been synced yesterday (and i’m sure if i added up all those .syncthing.*.tmp files, that would be what i’d get).
device a states that device b is syncing (0% since the beginning and still at that point)
device b states that device a is up to date
device a keeps switching between scanning and up to date for that specific folder, device b keeps the scanning status up.
am i just impatient and all files will be visible in their regular form once the entire amount has synced? but if so, why does device b state that 130584 items, ~315 GiB are currently Out Of Sync Items?
just trying to make sure i don’t spend the entire day letting my devices sync this enormous amount of data just to find out later that something went wrong and i have yet to go back to square one…
When running syncthing -logfile= i get
[UHUIW] 10:44:56 FATAL: Cannot open database: resource temporarily unavailable - Is another copy of Syncthing already running?
running top shows two instances of syncthing, which i don’t unterstand. i did pkill one of them.
i cannot find failed items on the web interface; there is only Out Of Sync Items. when opening it, i get an empty list (no files shown) with no errors at all. state of all those files is “sync”. there are color labels and the top of that box is purple, which indicates copied from elsewhere" but each individual file is no purple so i guess the error does not apply here?
also, i just checked the most recent file that has been synced without an error; then cded into that folder to check if the file was there. the file is not regularly via ls, but ls -la shows the file as syncthing.myfile.tmp o.O
ugh… thanks. this problem was permissions related. i recreated the entire folder structure in order to start from scratch and when that didnt work either realized pi was running as a different user than it was supposed to. idk why but now that i fixed that, everything works the way its supposed to.
ok, nevermind. even though i corrected permissions, i still only get folders and invisible tmp files.
the device causing these errors is a raspberry pi. i am syncing my android and my macbook with it.
for some reason, all files from my android device are being synced
(android <-> raspberry pi <-> macbook)
the raspberry pi syncs them to an smb mount on my synology nas.
the android sync works in each direction. i can delete folders in my android-dcim folder on my macbook and soon after they will be removed from my android device. so far, so good.
i have an “syncall” folder on my macbook, which (weirdly enough) can also successfully be
synced with all devices. this folder is a subfolder of my home folder; the home folder itself, however, still causes the permission problems.
should i delete all syncthing files from all devices (mainly talking about ~/.config/syncthing on my pi and the according syncthing folder on my macbook) and resync everything? or is there another way figuring out how to fix this?
actually, i have tried nextcloud before in a similar setup and had the same permission problems before (nextcloud was running, but could not successfully write any data to my smb mount). however, the “pi” user itself can write to these folders and syncthing is running as pi. anybody else encountered this?
I think this could be related to smb and it having acl’s, oppose to just standard permissions. You could also try setting ignore permissions.
I did that as well. It still does not sync correctly, though. All it does is create those .syncthing.something.tmp files. When not setting ignore permissions, at least I get an error log (seems like this log is hidden otherwise) in the webgui.
(and since syncthing is started as a daemon upon boot, I do not see the error log in my terminal)
Why not just use syncthing directly on your NAS instead of the Pi?
Until recently, I had used synology’s own Cloud solution (which was installed on my NAS). This resulted in constant cpu usage around 98%, even when no syncing was happening. That is the main reason why I tried switching to another solution (first nextcloud, now syncthing).
There is an inofficial syncthing repo for my DS, but I was not sure whether or not it could increase my synology’s cpu usage again.
I am planing to build a home server / nas from scratch, so syncthing will run on the same hardware that is connected to my hdds; just haven’t figured out a hardware setup yet for my needs.
If you told us what the error is, we might be able to understand the issue and suggest reasonable workarounds. Running it manually once, to see the logs on the terminal, might be also be useful.
How do I access the logfile?
cat /home/me/.config/syncthing/syncthing.log only displays a few lines (looking exactly like the ones I get when first running syncthing manually).
There are no errors in this file, except
[26ESY] 10:20:34 FATAL: Cannot open database: resource temporarily unavailable - Is another copy of Syncthing already running?
I have been told before that two instances of Syncthing cannot be running at the same time; and even if possible, I am running syncthing trough a preconfigured startup script and did not start another instance manually, so not sure what this is supposed to mean.
This is the script
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Multi-user daemonized version of syncthing.
# Description: Starts the syncthing daemon for all registered users.
### END INIT INFO
# Replace with users you want to run syncthing clients for
syncthing_USERS="pi"
DAEMON=/etc/syncthing/syncthing
startd() {
for stuser in $syncthing_USERS; do
HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}')
config=$HOMEDIR/.config/syncthing/config.xml
if [ -f $config ]; then
echo "Starting syncthiing for $stuser"
start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON
else
echo "Couldn't start syncthing for $stuser (no $config found)"
fi
done
}
stopd() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ ! -z "$dbpid" ]; then
echo "Stopping syncthing for $stuser"
start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON
fi
done
}
status() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ -z "$dbpid" ]; then
echo "syncthing for USER $stuser: not running."
else
echo "syncthing for USER $stuser: running (pid $dbpid)"
fi
done
}
case "$1" in
start) startd
;;
stop) stopd
;;
restart|reload|force-reload) stopd && startd
;;
status) status
;;
*) echo "Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}"
exit 1
;;
esac
exit 0
Terminal displays an error like this:
[26ESY] 10:50:43 INFO: Puller: final: chmod /home/pi/sync/ben-macbook/Documents/Bücher/Miran Lipovaca/Learn You a Haskell for Great Good! (37)/.syncthing.cover.jpg.tmp: operation not permitted
However, all folders on my pi are chowned to pi:pi while syncthing is running as pi. What could be the reason the operations are not permitted?
EDIT: also, I do not understand how suddenly 3 files (before was zero files) could have been synced, but all the other files (which are within the same subdirectory) could not have sufficient permissions…
This produces an error like this
[26ESY] 11:05:57 INFO: fsync “/home/pi/sync/ben-macbook/Audio/Logic/Aktuell/Schroedingers Death/Audio Files” failed: sync /home/pi/sync/ben-macbook/Audio/Logic/Aktuell/Schroedingers Death/Audio Files: invalid argument
My mount settings are like this:
//10.0.0.2/_sync /home/pi/sync cifs auto,credentials=/home/pi/mountcreds,domain=WORKGROUP,nodfs 0 0
Like I’ve mentioned before, my android device does sync all its files successfully on the pi in the same subdirectory (/home/pi/sync). Only the macbook seems to cause problems. However, it seems like I can sync single folders (i.e. /Users/ben/folder1) without any trouble, while /Users/ben/* cannot be synced.
Also, the ignore pattern for my macbook home folder does not work either. It does (or attempts to) sync folders that I excluded, for example .*, Library, Desktop.
Now, see, that’s a meaningful error and something we can work around. Apparently the CIFS mount doesn’t support the sync() call (to make sure file contents are on disk). You can disable that call by unchecking the advanced option fsync (Actions -> Advanced, expand the folder).