tl; dr
rsync
ygvfs
¿Hay algo que pueda hacer?
Historia completa
Me gustaría hacer una copia de seguridad de los datos de mi teléfono basado en Android (actualmente 5.1.1). No quiero usar soluciones hacky inestables e inseguras basadas en WiFi con SSH y servidor aquí y cliente allá (lo que sea, en realidad, el kies
software poco confiable de Samsung me hizo pensar de esa manera).
A estas alturas, usé un Linux Mint actual (18.2), traté de leer datos del teléfono usando rsync
y el almacenamiento asignado gvfs
que falló miserablemente (problemas de permisos, conexión inestable).
Me gustaría programar los directorios de los que hago una copia de seguridad y automatizar ese proceso en la medida de lo posible. ¿Puedo hacer que Android actúe como una especie de dispositivo virtual Windows/Linux
que permita algún tipo de acceso basado en archivos? ¿O un servidor Web-DAV conectado a través de un cable USB? ¡Nada de soluciones gratuitas en la nube (Google, OneDrive, Dropbox), tampoco, por favor!
Gracias por su ayuda.
Como la mayoría de las veces: error en la capa 8 del modelo OSI. Esto es lo que hice y lo que debería haber hecho:
Lo que hice
Monté mi unidad externa de destino usando sudo
(nada malo hasta ahora) y, por lo tanto, solo root
tengo permisos para escribir, rsync
no pude hacer nada (lo que tiene sentido después de todo), incluso cuando se ejecuta usando sudo
. Dónde estaba exactamente el error, no estoy absolutamente seguro, pero concentrémonos en
lo que debí haber hecho
chown
envíelo a su usuario designado (o grupo o ambos)rsync
Creé un pequeño script para automatizar la búsqueda de la gvfs
ruta y rsync a la unidad externa:
#!/bin/bash
PHONE_VENDOR=0000 # your phone vendor here!
USERID=1 # your user ID here - possibly `id -u`
PHONE_BUS=\`echo $(lsusb -d ${PHONE_VENDOR}:) | cut -d' ' -f 2\`
PHONE_BUS=${PHONE_BUS}%2C
PHONE_BUS=${PHONE_BUS}\`echo $(lsusb -d ${PHONE_VENDOR}:) | cut -d' ' -f 4 | cut -b 1-3` #extract vendor ID from lsusb
SOURCEBASE=/run/${USERID}/gvfs/mtp\:host\=%5Busb%3A${PHONE_BUS}%5D
TARGETBASE= # your target base path here
rsync -a --progress ${SOURCEBASE} ${TARGETBASE} # your rsync commands here
No sé si algo cambia (o este script funciona) al aplicar una fstab
entrada y luego montar a través de Shell y no depender de las herramientas de la GUI.
Esto funciona para mí y proporciona una forma ordenada de hacer una copia de seguridad del contenido de los teléfonos Android sin copiar tarjetas SD completas o espacios internos.
ACTUALIZACIÓN - Primer intento real
Durante la ejecución, rsync
comenzaron a aparecer errores de E/S, probablemente porque el proceso en general estaba tardando mucho (tenía alrededor de 50 GB para sincronizar). Ahora estoy empezando de nuevo.
Puede ser una buena idea comenzar una base copiando manualmente todos los archivos inicialmente y todos los procesos de sincronización posteriores mediante el uso de rsync
.
ACTUALIZACIÓN - Segundo intento
Entonces sucede que esta cantidad puede ser demasiado para un intento. Tal vez este también sea mi teléfono inteligente de mierda. En general funciona y después de la primera carga inicial estará bien, supongo.
abejas
abejas
abejas
bash.d