[Android General] Genericxx:
There are a lot of howtos about pulling/pushing content over wifi around. Taking adb or AirDroid may be reliable for common use, but i was looking for a real two-way-sync without utilizing a cloud, also i wanted not too much 3rd Party-Software involved, neither on my box nor at my phone.

Although Unison is platform-independant and can be run from Windows, i'm focussing on the Linux part (coz i've got no Windows box to test). I won't go deeper into things like howto install the required applications on your box. You won't have to compile anything, precompiled binaries should be available for your distro. Guess pacman, yum and apt-get will do their job, but if in doubt, Google will lead the way.

Requirements

A rooted device

SSHDroid installed on your Android

OpenSSH, SSHFS and Unison properly installed on your Box

SSH

After ensured the requirements above, you should be able to ssh to your android device. It's ip is shown by SSHDroid.

ssh root@<yourdeviceip>

First connect will take some time, coz ssh will handshake your device and save the fingerprint. After the connect succeeded, you will be easily able to connect your device anytime over wifi.

SSHFS

SSHFS allows us to mount the whole android device to a mountpoint on your box. Compare it like a external harddisk you plug into your box usb.

First we'll create a directory in our home and then mount the device into it.

mkdir wifidroid && sshfs root@<your device ip>:/sdcard/ ~/wifidroid/

SSHFS will ask for your root password anytime you try to connect. If not configured different within SSHDroid, it will be admin. You're ought to change it for safety reasons. After above steps, your device is mounted into wifidroid. You can easily browse the contents using your preferred linux filemanager (like dolphin or nautilus). To unmount device, use fusermount -u ~/wifidroid/ later.

UNISON

Unison will handle the syncing between your box and your device. It comes with an cli and even with a gui. Whatever you will use is up to your personal preference.

First of all we're going to create the unison profile directory and a basic example profile for syncing pictures.

mkdir ~/.unison && touch pictures.prf

Open pictures.prf with your preferred editor (nano, vi, kate, gedit, orwutevah) and write down some config stuff.

root=/home/<username>/Pictures
root=/home/<username>/wifidroid/Pictures

path=Friends
path=Landscape
path=Misc Stuff

perms=0
ignore=Name .*~
ignore=Name *~
ignore=Name .*

The first root=/home/<username>/Pictures points to your local pictures directory, whereas the second one, root=/home/<username>/wifidroid/Pictures points to the pictures-folder at your mounted android device. Unison syncs recursevly, so it would simply sync anything beneath the directory Pictures. If you want to sync only some Subfolders, use path=Friends i. e. to include Pictures/Friends. You may edit this to your own convince. We don't want unison to set permissions on synced files, so we set perms=0. Rest should be self explanatory.

Okay, now just fire up unison with unison pictures for cli-version, or unison-gtk pictures for the gui-version and syncing should begin.

Keep in mind that, depending on your wifi speed, it will take a huge amount of time to sync a whole mp3/picture library for the first time. After first sync things should be butter smooth :cool:

Above example is just a basic profile. You can easily use unison to backup your whole device, or, as i do, make regular backups of your Camera-Roll, WhatsApp and Threema Backups. If you wanna go deeper into this, you should take a look at the Unison Reference Guide.