問題描述
如何連接到我的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時,和
什么時候充電
參考資料