Androidにrsyncする方法


50

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


エラーメッセージが生成されたアクションを正確に説明するために、これを編集することをお勧めします。(たとえば、コマンドの出力の場合は、完全なコマンドを含めることができます。)
エリアカガン

1
面白いかもしれません:Syncopoli
DJCrashdummy

@DJCrashdummyあなたがあなたのコメントを答えとして書いたら、私はそれを支持します。
ゲットリ

Syncopoli は単なるrsyncクライアントであるため、@ guettliはコメントとしてのみこれを作成しました(今のところ)。
DJCrashdummy

回答:


50

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

3
次のオプションを追加します--omit-dir-times --no-perms --ignore-existing。Rsyncは、MTPを介したディレクトリタイムスタンプの設定に失敗します。「許可なし」がデフォルトであると確信していますが、指定したいです。既存のファイルを無視すると、中断したところから再開できます。
スティーブンオステルミラー16

4
なんで--ignore-existing?冗長性が失われているだけです。--size-onlyこれにより、チェックサムではなく、ディレクトリリストへの同期をいつでも減らすことができます。私は追加するつもりだ--omit-dir-times--no-permsその音が便利なので、私はそのことについて最後にエラーになって思い出しているようです。
エヴァンキャロル

Rsyncには、MTPを介してタイムスタンプを適切に設定するのに問題があるため、--ignore-existingすべてのファイルを同期しようとしません。あなたの--size-only提案が好きです。次回は代わりに試してみます。
スティーブンオステルミラー16

3
私はソースにスターを使用する必要はありませんので、私はまた、先に入れた最後のスラッシュを使用します~/Videos/ ./
スティーブンOstermiller

また、コンピューターの音楽フォルダーから既に削除したファイルを削除するには、「-delete-after」を追加する必要がありました。したがって、完全なコマンドは、rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-existing --delete-after / home / user / MUSIC /です。
happyskeptic

39

sshelperを使用する

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

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

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

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

rsync -rvlc音楽android:SDCardLink /

更新 私はprefere -rvlc-a権限とタイムスタンプを設定する作業をしないので、あなたが警告の多くを得ることから。このオプション-cにより、2番目の同期がより高速になります。

私はprefere -rvl --size-only-a権限とタイムスタンプを設定する作業をしないので、あなたが警告の多くを得ることから。このオプション--size-onlyにより、2番目の同期がより高速になります。

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


13
.ssh / configを変更せずにSSHelperでrsyncを使用する別の方法:rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/stackoverflow.com/a/4630407/399105
bmaupin 14年

1
@guettli音楽ファイルを同期するための-cチェックサムオプションは何ですか?これは大幅に遅くなる可能性があります
-EdiD

5
rsync manの@guettli:-c、-checksum。このオプションを使用しない場合、rsyncは「クイックチェック」を使用して、デフォルトで各ファイルのサイズと最終変更時刻が送信者と受信者の間で一致するかどうかをチェックします。このオプションはこれを変更して、サイズが一致する各ファイルの128ビットチェックサムを比較します。チェックサムの生成とは、転送中のファイル内のすべてのデータを読み取るために、両側が大量のディスクI / Oを消費することを意味します。
EdiD

4
@guettliこれ--size-onlyが最速のソリューションになると思い ます。しかし、それはそうセーブいない-c
ニールス・

2
USBテザリングを使用して、はるかに高速な転送を実現しました。私はSSHelpを実行し、それがIPを表示した後、次のコマンドは、私の仕事192.168.1.5:異なる毎回であるかもしれないrsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
オーガニックアディクト

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.