问题描述
如何连接到我的Android设备以rsync音乐(或其他东西)?
最佳解决思路
实际上在MTP /usb上使用rsync
这比每个人都说的容易,首先注意到当GVFS安装MTP挂载时,它将在下面可用。您可以通过在图形file-browser(thunar /nautilus /etc)中打开手机来强制执行此操作
/run/user/$UID/gvfs
去那里假设您有一个mtp设备,这应该工作:
$ cd /run/user/$UID/gvfs/mtp*
找到您想要传输文件的位置,然后将它们与它们进行rsync
$ cd SanDisk\ SD\ card/Movies/
$ pwd # prints "/run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C096%5D/SanDisk SD card/Movies"
$ rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace ~/Videos/ ./
Rsync选项
-
--inplace
:我强烈建议使用--inplace
,否则mtp可能希望将文件复制为新文件,然后将其重命名为旧文件。这可能导致将文件复制到SD卡两次:一次用于mtp传输到SD卡,另一次因为MTP驱动程序可能不支持(mv),它可能(cp /rm)在引擎盖下是安全的。 -
阅读man rsync以获得
--verbose
,--progress
,--recursive
的描述,但它们非常像self-documenting。 -
--omit-dir-times
--no-perms
是必需的,因为mtp不支持它。
次佳解决思路
使用sshelper
我找到了这个解决方案
-
在设备上安装sshelper(无需root设备,可从google play market获得)
-
在我的WLAN中,该设备称为”android”。但是,如果您无法为设备提供主机名,则可以使用IP。
编辑本地ssh-config,以更改主机”android”的默认端口
.ssh/config
host android
Port 2222
-
在设备上启动sshelper。
-
将Android设备连接到WLAN。
rsync -rvlc Music android:SDCardLink/
更新我优先选择-rvlc
到-a
,因为自设置权限和time-stamps不起作用后会收到很多警告。选项-c
使第二次同步更快。
不幸的是,音乐应用需要一些时间来查看新文件。重启设备有帮助。
第三种解决思路
rsync backup for Android可以配置为反向同步,即从Linux主机到Android设备。
在Llama的帮助下,可以在特定条件下自动将Android设备配置为rsync,例如:
-
早上5点,
-
当手机连接到特定的Wi-Fi时,和
-
什么时候充电