Comments 36
В *nix всё ещё проще: наивный контрольный scp + коротенький shell-скрипт.
И то верно, а сам скрипт будет лежать на трубке и вызываться при подключении к вафле.
Причём только при подключении к ssid своей домашней сети, во избежание. И дырку бы в droidwall проделывать ещё только тогда, когда…
Пока не дочитал статью, недоумевал — «А чем FTP не угодил?». Идеологически правильное свободное решение! А еще можно сделать в скрипте проверку на наличие фтп сервера и запихнуть в планировщик, либо, переписав скрипт на shell, в cron. Чтобы при нахождении трубки в пределах видимости синхронизация наступала автоматически.
Примерный вариант сможете показать для тех, кто не силён в *nix?
Так вложите скрипт ниже и мой комментарий про lftp. И будет вам счастье.
Скорее всего, можно и на сервере организовать (не только на декстопе с фряхой) синхронизацию. Проверять по крону наличие андроида (по ip) в сети, и, если есть, то начинать выполнение скрипта.
… на сервере, если на нем есть диск, используемый как сетевой с десктопов.
Написал скрипт, который проверяем телнетом наличие Android-смартфона с включенным SwiFTP в сети, и, если последний присутствует, заливает на него все имеющиеся файлы в каталоге /root/android (заменить на свой). После заливки на ftp файлы удаляются.

# less android.sh
#!/usr/local/bin/bash

#Директория с файлами для заливки в телефон
WORKDIR="/root/android"

#Параметры FTP
FTPHOST="172.16.0.15"
FTPPORT="42521"
FTPUSER="ftp"
FTPPASS="ftp"

TELNET=$(which telnet)

cd $WORKDIR

#Проверяем доступность SwiFTP на Android'е
(
echo "quit"
) | $TELNET $FTPHOST $FTPPORT | grep Connected > /dev/null 2>&1

if [ "$?" -ne "1" ]; then
    echo "Android's ONLINE"

#Подключаемся к ftp и заливаем все файлы из WORKDIR в Android
ftp -in <<EOF
open $FTPHOST $FTPPORT
user $FTPUSER $FTPPASS
bin
mput *
close
bye
EOF

#Удаляем все файлы из директории WORKDIR
rm $WORKDIR/*

else
    echo "Android's OFFLINE"
fi

Работает пока только с файлами. Думаю, как реализовать копирование/создание директорий на андроиде, если в исходной папке таковые будут.
не нужно городить десятки строк бесполезного кода, для этого есть нативные решения.
Придумываете велосипед. все проще.
1) Ставим lftp
2) пишем скрипт наподобие Вашего

для синхронизации компа с смартфоном:
lftp -e 'mirror -e /photos /home/user/photos; bye;' -u login,pass 10.0.0.163:2121

для синхронизации смартфона с компом:
lftp -e 'mirror -R /home/user/music /music; bye;' -u login,pass 10.0.0.163:2121
Кстати, в зависимости от того, насколько часто будет проверяться наличие телефона в сети и каков будет объем подготовленных файлов, надо придумать, как исключить повторный запуск скрипта и начало переноса. Создать pid, возможно.
Можно, но только что опытным путем запустил параллельно 2 скрипта синхронизации, они просто синхронизировали параллельно. так что может не страшно дублирование?
Хотя pid будет более правильным путем, но стоит ли?
Если запустятся два потока одновременно, производительность копирования упадет из-за параллельного переноса >2 файлов. Конечно, это актуально только для больших файлов.
Лучше бы уж Dropbox допилили, чтобы автоматически только по Wi-Fi синхронизировался. Предложенный способ хорош, но, полагаю, что со временем он отпадет, т.к. появится какое-то встроенное решение. Примерное как было со сторонними клавиатурами (рус.) и Wi-Fi-tethering — на Froyo все это по дефолту есть.
UFO landed and left these words here
Эта программа упомянута в топике. Она делает то же самое, что и SwiFTP: создает FTP-сервер (еще умеет WebDAV и AppleTalk). И ничего более.
Там нет никакой синхронизации, это, считайте, тот же FTP-сервер, только в браузере. Надо еще сделать, чтобы что-то оттуда автоматически забирало файлы.
Есть такая штука, synchronet.ru, они синхронизируют все подряд, в том числе и файлы, и для андроида тоже.
Only those users with full accounts are able to leave comments. Log in, please.