Ich empfehle, dies zu bearbeiten, um genau zu erklären, welche Aktion diese Fehlermeldung erzeugt hat. (Wenn es sich beispielsweise um die Ausgabe eines Befehls handelt, können Sie den vollständigen Befehl einschließen.)
@DJCrashdummy Wenn du deinen Kommentar als Antwort schreibst, werde ich darüber abstimmen.
Guettli
@guettli Ich habe dies nur als Kommentar geschrieben, da Syncopoli nur ein Rsync-Client ist (für den Moment ).
DJCrashdummy
Antworten:
50
Eigentlich mit Rsync über MTP / USB
Es ist einfacher, als alle sagen. Beachten Sie zunächst, dass GVFS beim Mounten des MTP-Mount unter verfügbar ist. Sie können dies erzwingen, indem Sie das Telefon in einem grafischen Dateibrowser (thunar / nautilus / etc) öffnen.
/run/user/$UID/gvfs
geh da rein. Vorausgesetzt, Sie haben ein MTP-Gerät, sollte dies funktionieren:
$ cd /run/user/$UID/gvfs/mtp*
Finden Sie, wohin Sie die Dateien auch übertragen möchten, und synchronisieren Sie sie anschließend
--inplace: Ich empfehle dringend die Verwendung, --inplaceohne die mtp die Datei neu kopieren und dann in die alte umbenennen möchte. Das kann dazu führen, dass die Datei zweimal auf die SD-Karte kopiert wird: einmal für die MTP-Übertragung auf die SD-Karte und ein anderes Mal, weil der MTP-Treiber möglicherweise (mv) nicht unterstützt, kann es sicherheitshalber (cp / rm) sein .
lese man rsync für eine Beschreibung --verbose, --progress, --recursiveaber sie sind ziemlich selbsterklärend.
--omit-dir-times--no-perms werden benötigt, weil mtp das nicht unterstützt.
Ich füge die folgenden Optionen hinzu --omit-dir-times --no-perms --ignore-existing. Rsync kann Verzeichnis-Zeitstempel nicht über MTP setzen. Ich bin mir ziemlich sicher, dass "keine Berechtigungen" die Standardeinstellung ist, aber ich möchte es angeben. Das Ignorieren vorhandener Dateien ermöglicht es, dort fortzufahren, wo es aufgehört hat.
Stephen Ostermiller
4
Warum --ignore-existing? Das ist nur Redundanz zu verlieren. Du könntest immer --size-onlydie Synchronisation auf die Verzeichnisliste reduzieren und nicht die Prüfsummen. Ich werde das --omit-dir-timesund hinzufügen, --no-permsweil das nützlich klingt, und ich erinnere mich an einen Fehler am Ende.
Evan Carroll
Rsync hat Probleme, Zeitstempel über MTP richtig für mich einzustellen, also ohne --ignore-existinges zu versuchen, alle Dateien zu synchronisieren. Ich mag deinen --size-onlyVorschlag. Ich werde es beim nächsten Mal versuchen.
Stephen Ostermiller
3
Ich benutze auch den abschließenden Schrägstrich am Ziel, damit ich keinen Stern an der Quelle verwenden muss:~/Videos/ ./
Stephen Ostermiller
Ich musste auch '--delete-after' hinzufügen, um Dateien zu löschen, die ich bereits aus dem Musikordner auf dem Computer entfernt hatte. Der vollständige Befehl lautet also: rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-existing --delete-after / home / user / MUSIC /.
happyskeptic
39
Sshelper verwenden
Ich habe diese Lösung gefunden:
Installieren Sie sshelper auf dem Gerät (kein gerootetes Gerät erforderlich, erhältlich bei Google Play Market)
In meinem WLAN heißt das Gerät "android". Sie können aber die IP verwenden, wenn Sie dem Gerät keinen Hostnamen geben können.
Bearbeiten Sie die lokale ssh-config, um den Standard-Port für den Host "android" zu ändern.
.ssh/config
host android
Port 2222
Starten Sie sshelper auf dem Gerät.
Verbinden Sie das Android-Gerät mit Ihrem WLAN.
rsync -rvlc Musik android: SDCardLink /
AktualisierenIch bevorzuge -rvlc, -ada Sie viele Warnungen erhalten, da das Festlegen von Berechtigungen und Zeitstempeln nicht funktioniert. Diese Option -cbeschleunigt die zweite Synchronisierung erheblich.
Ich bevorzuge -rvl --size-only, -ada Sie viele Warnungen erhalten, da das Festlegen von Berechtigungen und Zeitstempeln nicht funktioniert. Diese Option --size-onlybeschleunigt die zweite Synchronisierung erheblich.
Leider dauert es einige Zeit, bis Musik-Apps die neuen Dateien sehen. Ein Neustart des Geräts hilft.
Eine alternative Möglichkeit, rsync mit SSHelper zu verwenden, ohne .ssh / config ändern zu müssen: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin
1
@guettli was für -c Prüfsummenoption zum Synchronisieren von Musikdateien? Dies kann sich erheblich verlangsamen
EdiD
5
@guettli von rsync man: -c, --checksum. Ohne diese Option verwendet rsync eine "Schnellüberprüfung", die (standardmäßig) überprüft, ob die Größe und der Zeitpunkt der letzten Änderung der einzelnen Dateien zwischen dem Absender und dem Empfänger übereinstimmen. Diese Option ändert dies, um eine 128-Bit-Prüfsumme für jede Datei zu vergleichen, deren Größe übereinstimmt. Das Generieren der Prüfsumme bedeutet, dass beide Seiten viel Festplatten-E / A für das Lesen aller Daten in den Dateien bei der Übertragung aufwenden, was die Dinge erheblich verlangsamen kann.
EdiD
4
@guettli Ich denke das --size-onlywäre die schnellste Lösung. Allerdings ist es nicht so speichern , wie-c
NIELS
2
Ich habe USB-Tethering verwendet und viel schnellere Übertragungen erhalten. Der folgende Befehl hat bei mir funktioniert, nachdem ich SSHelp ausgeführt habe und die IP- 192.168.1.5Adresse jedes Mal anders angezeigt wird:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Organic Addict
3
Das rsync-Backup für Android kann so konfiguriert werden, dass es umgekehrt synchronisiert wird, dh von einem Linux-Host auf ein Android-Gerät.
Und mit der Hilfe von LlamaLab Automate kann man das Android-Gerät so konfigurieren, dass es unter bestimmten Bedingungen automatisch synchronisiert wird , zB:
um 5 uhr,
wenn das Telefon mit einem bestimmten WLAN verbunden ist, und
Antworten:
Eigentlich mit Rsync über MTP / USB
Es ist einfacher, als alle sagen. Beachten Sie zunächst, dass GVFS beim Mounten des MTP-Mount unter verfügbar ist. Sie können dies erzwingen, indem Sie das Telefon in einem grafischen Dateibrowser (thunar / nautilus / etc) öffnen.
geh da rein. Vorausgesetzt, Sie haben ein MTP-Gerät, sollte dies funktionieren:
Finden Sie, wohin Sie die Dateien auch übertragen möchten, und synchronisieren Sie sie anschließend
Rsync-Optionen
--inplace
: Ich empfehle dringend die Verwendung,--inplace
ohne die mtp die Datei neu kopieren und dann in die alte umbenennen möchte. Das kann dazu führen, dass die Datei zweimal auf die SD-Karte kopiert wird: einmal für die MTP-Übertragung auf die SD-Karte und ein anderes Mal, weil der MTP-Treiber möglicherweise (mv) nicht unterstützt, kann es sicherheitshalber (cp / rm) sein .--verbose
,--progress
,--recursive
aber sie sind ziemlich selbsterklärend.--omit-dir-times
--no-perms
werden benötigt, weil mtp das nicht unterstützt.quelle
--omit-dir-times --no-perms --ignore-existing
. Rsync kann Verzeichnis-Zeitstempel nicht über MTP setzen. Ich bin mir ziemlich sicher, dass "keine Berechtigungen" die Standardeinstellung ist, aber ich möchte es angeben. Das Ignorieren vorhandener Dateien ermöglicht es, dort fortzufahren, wo es aufgehört hat.--ignore-existing
? Das ist nur Redundanz zu verlieren. Du könntest immer--size-only
die Synchronisation auf die Verzeichnisliste reduzieren und nicht die Prüfsummen. Ich werde das--omit-dir-times
und hinzufügen,--no-perms
weil das nützlich klingt, und ich erinnere mich an einen Fehler am Ende.--ignore-existing
es zu versuchen, alle Dateien zu synchronisieren. Ich mag deinen--size-only
Vorschlag. Ich werde es beim nächsten Mal versuchen.~/Videos/ ./
Sshelper verwenden
Ich habe diese Lösung gefunden:
Bearbeiten Sie die lokale ssh-config, um den Standard-Port für den Host "android" zu ändern.
Aktualisieren
Ich bevorzuge-rvlc
,-a
da Sie viele Warnungen erhalten, da das Festlegen von Berechtigungen und Zeitstempeln nicht funktioniert. Diese Option-c
beschleunigt die zweite Synchronisierung erheblich.Ich bevorzuge
-rvl --size-only
,-a
da Sie viele Warnungen erhalten, da das Festlegen von Berechtigungen und Zeitstempeln nicht funktioniert. Diese Option--size-only
beschleunigt die zweite Synchronisierung erheblich.Leider dauert es einige Zeit, bis Musik-Apps die neuen Dateien sehen. Ein Neustart des Geräts hilft.
quelle
rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/
( stackoverflow.com/a/4630407/399105 )--size-only
wäre die schnellste Lösung. Allerdings ist es nicht so speichern , wie-c
192.168.1.5
Adresse jedes Mal anders angezeigt wird:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Das rsync-Backup für Android kann so konfiguriert werden, dass es umgekehrt synchronisiert wird, dh von einem Linux-Host auf ein Android-Gerät.
Und mit der Hilfe von LlamaLab Automate kann man das Android-Gerät so konfigurieren, dass es unter bestimmten Bedingungen automatisch synchronisiert wird , zB:
quelle