Android में rsync कैसे करें


50

मैं अपने एंड्रॉइड डिवाइस को rsync संगीत (या अन्य सामान) से कैसे कनेक्ट कर सकता हूं?


मैं यह संपादित करने की सलाह देता हूं कि यह समझाने के लिए कि त्रुटि संदेश क्या कार्रवाई उत्पन्न करता है। (उदाहरण के लिए, यदि यह एक कमांड का आउटपुट है, तो आप पूरी कमांड को शामिल कर सकते हैं।)
एलियाह कगन

1
शायद दिलचस्प: सिंकोपोली
डीजेक्रैडमी

@DJCrashdummy यदि आप अपनी टिप्पणी उत्तर के रूप में लिखते हैं, तो मैं इसे वोट करूंगा।
गुइतली

@guettli मैंने इसे केवल टिप्पणी के रूप में लिखा था, क्योंकि सिंकोपोली सिर्फ एक rsync- ग्राहक है (अभी के लिए)।
डीजे क्रशडम्मी

जवाबों:


50

वास्तव में MTP / usb पर rsync का उपयोग करना

हर कोई कह रहा है कि यह आसान है, पहले ध्यान दें कि जब जीवीएफएस एमटीपी माउंट की गणना करता है तो यह उपलब्ध होगा। आप फोन को एक ग्राफिकल फ़ाइल-ब्राउज़र (थूनर / नॉटिलस / आदि) में खोलकर इसे बाध्य कर सकते हैं

/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/ ./

रुपये का विकल्प

  • --inplace: मैं अत्यधिक सुझाव देता हूं कि --inplaceकिस mtp के बिना फाइल को नया कॉपी करना चाहते हैं, और फिर इसे पुराने नाम से बदल सकते हैं। फ़ाइल को एसडी कार्ड में दो बार कॉपी करने के परिणामस्वरूप हो सकता है: एक बार एसडी कार्ड में एमटीपी हस्तांतरण के लिए, और दूसरी बार क्योंकि एमटीपी चालक समर्थन नहीं कर सकता है (एमवी), यह सुरक्षित होने के लिए हुड के नीचे (सीपी / आरएम) हो सकता है। ।
  • के वर्णन के लिए आदमी rsync पढ़ा --verbose, --progress, --recursiveलेकिन वे बहुत आत्म दस्तावेज़ीकृत कर रहे हैं।
  • --omit-dir-times --no-perms आवश्यक हैं क्योंकि mtp उस का समर्थन नहीं करता है।

3
मैं निम्नलिखित विकल्प जोड़ता हूं --omit-dir-times --no-perms --ignore-existing। Rsync MTP पर निर्देशिका टाइमस्टैम्प सेट करने में विफल रहता है। मुझे पूरा यकीन है कि "कोई अनुमति नहीं" डिफ़ॉल्ट है, लेकिन मैं इसे निर्दिष्ट करना पसंद करता हूं। मौजूदा फाइलों को नजरअंदाज करने से वह उसे वहीं छोड़ सकती है जहां उसे छोड़ा गया था।
स्टीफन ओस्टरमिलर

4
क्यों --ignore-existing? वह सिर्फ अतिरेक खो रहा है। आप हमेशा ऐसा कर सकते हैं --size-onlyजो निर्देशिका लिस्टिंग के सिंक को कम करता है और चेकसम को नहीं। मैं जोड़ने जा रहा हूँ --omit-dir-timesऔर --no-permsक्योंकि यह उपयोगी लगता है, और मुझे लगता है कि इस बारे में अंत में एक त्रुटि हो रही याद है।
इवान कैरोल

Rsync को मेरे लिए ठीक से MTP पर समय स्टैम्प सेट करने में समस्याएँ हैं, इसलिए इसके बिना --ignore-existingसभी फ़ाइलों को सिंक करने की कोशिश करता है। मुझे आपका --size-onlyसुझाव पसंद आया । मैं इसके बजाय अगली बार कोशिश करूँगा।
स्टीफन ओस्टरमिलर

3
मैं भी गंतव्य पर ट्रेलिंग स्लैश का उपयोग करता हूं, इसलिए मुझे स्रोत पर एक स्टार का उपयोग करने की आवश्यकता नहीं है:~/Videos/ ./
स्टीफन ओस्टरमिलर

मुझे कंप्यूटर पर संगीत फ़ोल्डर से पहले से हटा दी गई फ़ाइलों को हटाने के लिए इसे '--delete-after' भी जोड़ना पड़ा। तो पूरी कमांड है: rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-मौजूदा --delete-after / home / user / MUSIC /।
हैप्पीस्केप्टिक

39

Sshelper का उपयोग करना

मुझे यह समाधान मिला:

  • डिवाइस पर sshelper स्थापित करें (कोई रूट किए गए डिवाइस की आवश्यकता नहीं है, जो Google Play बाजार से उपलब्ध है)
  • मेरे WLAN में डिवाइस को "एंड्रॉइड" कहा जाता है। लेकिन आप IP का उपयोग कर सकते हैं, यदि आप डिवाइस को होस्टनाम नहीं दे सकते हैं।

होस्ट "android" के लिए डिफ़ॉल्ट पोर्ट को बदलने के लिए, स्थानीय ssh-config संपादित करें

.ssh/config
host android
    Port 2222
  • डिवाइस पर sshelper प्रारंभ करें।
  • आपको WLAN से Android डिवाइस कनेक्ट करें।

rsync -rvlc संगीत Android: SDCardLink /

अपडेट करें मैं prefere -rvlcकरने -aके बाद आपको अनुमति और समय टिकटों काम नहीं करता है की स्थापना के बाद से चेतावनी का एक बहुत मिलता है। विकल्प -cदूसरे सिंक को बहुत तेज बनाता है।

मैं prefere -rvl --size-onlyकरने -aके बाद आपको अनुमति और समय टिकटों काम नहीं करता है की स्थापना के बाद से चेतावनी का एक बहुत मिलता है। विकल्प --size-onlyदूसरे सिंक को बहुत तेज बनाता है।

नई फ़ाइलों को देखने के लिए दुर्भाग्य से संगीत ऐप्स के लिए कुछ समय चाहिए। डिवाइस को पुनरारंभ करने से मदद मिलती है।


13
SSHelper के साथ rsync का उपयोग करने का एक वैकल्पिक तरीका है। ssh / config: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin

1
@guettli संगीत फ़ाइलों को सिंक करने के लिए -c चेकसम विकल्प क्या है? यह काफी धीमा कर सकता है
EdiD

5
rsync आदमी से @guettli: -c, - checksum इस विकल्प के बिना, rsync एक "क्विक चेक" का उपयोग करता है जो कि (डिफ़ॉल्ट रूप से) चेक करता है कि क्या प्रत्येक फ़ाइल का आकार और भेजने वाले और रिसीवर के बीच अंतिम संशोधन मैच का समय है। यह विकल्प प्रत्येक फ़ाइल के लिए 128-बिट चेकसम की तुलना करने के लिए इसे बदलता है जिसका मिलान आकार है। चेकसम उत्पन्न करने का अर्थ है कि दोनों पक्ष हस्तांतरण में फाइलों में सभी डेटा को पढ़ने में डिस्क I / O का बहुत खर्च करेंगे, इसलिए यह चीजों को काफी धीमा कर सकता है।
EdiD

4
@guettli मुझे लगता है कि --size-onlyसबसे तेज समाधान होगा। हालाँकि यह इतना नहीं बचा है-c
19

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/
कार्बनिक व्यसनी

3

एंड्रॉइड के लिए rsync बैकअप को रिवर्स में सिंक करने के लिए कॉन्फ़िगर किया जा सकता है, जो कि लिनक्स होस्ट से एंड्रॉइड डिवाइस तक है।

और LlamaLab ऑटोमैटिक की मदद से एंड्रॉइड डिवाइस को विशिष्ट स्थितियों पर स्वचालित रूप से rsync पर कॉन्फ़िगर कर सकते हैं, जैसे:

  1. सुबह 5 बजे,
  2. जब फोन एक विशिष्ट वाई-फाई से जुड़ा होता है, और
  3. जब यह चार्ज हो रहा है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.