web-dev-qa-db-ja.com

androidに再同期する方法

Androidデバイスに接続して音楽(またはその他のもの)をrsyncするにはどうすればよいですか?

48
guettli

Sshelperを使用する

私はこの解決策を見つけました:

  • デバイスに sshelper をインストールします(ルート化されたデバイスは不要、Google Playマーケットから入手可能)
  • 私のWLANでは、デバイスは「Android」と呼ばれています。ただし、デバイスにホスト名を指定できない場合は、IPを使用できます。

ローカルssh-configを編集して、ホスト「Android」のデフォルトポートを変更します

.ssh/config
Host Android
    Port 2222
  • デバイスでsshelperを起動します。
  • AndroidデバイスをWLANに接続します。

rsync -rvlc Music Android:SDCardLink /

更新 -rvlcより-aの方が好きです。許可とタイムスタンプの設定が機能しないため、多くの警告が表示されるからです。オプション-cは、2番目の同期をより高速にします。

-rvl --size-onlyより-aの方が好きです。許可とタイムスタンプの設定が機能しないため、多くの警告が表示されるからです。オプション--size-onlyは、2番目の同期をより高速にします。

残念ながら、音楽アプリが新しいファイルを見るには時間が必要です。デバイスの再起動が役立ちます。

37
guettli

実際にMTP/usb経由でrsyncを使用する

GVFSがMTPマウントをマウントすると、その下で使用できることに最初に注意してください。グラフィカルファイルブラウザ(thunar/nautilus/etc)で電話を開くことにより、これを強制できます。

/run/user/$UID/gvfs

そこに行きます。 1つのmtpデバイスがあると仮定すると、これは機能するはずです。

$ cd /run/user/$UID/gvfs/mtp*

あなたもファイルを転送したい場所を見つけて、それらをそこに再同期します

$ 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:I highly--inplaceを使用することをお勧めします。これを使用しないと、mtpはファイルを新規にコピーしてから、古いファイルに名前を変更します。その結果、ファイルがSDカードに2回コピーされる可能性があります。1回はSDカードへのmtp転送用、もう1回はMTPドライバが(mv)をサポートしないため、フードの下で(cp/rm)安全にするためです。
  • --verbose--progress--recursiveの説明についてはman rsyncを読んでください。しかし、それらはかなり自己文書化されています。
  • --omit-dir-times--no-permsは、mtpがサポートしていないため必要です。
46
Evan Carroll

Androidのrsyncバックアップ は、逆方向、つまりLinuxホストからAndroidデバイスに同期するように構成できます。

Llama の助けを借りて、特定の条件で自動的にrsyncするようにAndroidデバイスを設定できます。

  1. 午前5時
  2. 電話機が特定のWi-Fiに接続されている場合、および
  3. 充電中です。