जब मैं इसे अपने कंप्यूटर से कनेक्ट करता हूं तो मैं स्वचालित रूप से USB ड्राइव में फ़ाइलों को कैसे कॉपी कर सकता हूं?


18

मैं हार्ड ड्राइव पर एक विशिष्ट निर्देशिका से सभी फ़ाइलों को कॉपी करने के लिए एक समाधान की तलाश कर रहा हूं, एक USB मेमोरी डिवाइस पर एक विशिष्ट निर्देशिका के लिए, एक बार यह उपकरण जुड़ा हुआ है।

मेरे पास एक प्रोग्राम है जो मेरे लिए पॉडकास्ट एपिसोड डाउनलोड करता है।

एक बार कंप्यूटर से कनेक्ट करने के बाद मैं इन फ़ाइलों को अपने एमपी 3 प्लेयर में स्वचालित रूप से स्थानांतरित (या कम से कम कॉपी) करना चाहूंगा।

मेरे पास दोनों विंडोज़ xp और लिनक्स मशीनें हैं, इसलिए उनमें से किसी के लिए एक समाधान मेरे लिए काम करेगा।


2
मुझे लगता है कि एक अनुसूचित सिंक्रनाइज़ेशन से संतुष्ट नहीं हैं?
इवो ​​फ्लिप

जवाबों:


23

आप autorun.inf और .bat फ़ाइल का उपयोग करके विंडोज के लिए अपना स्वयं का समाधान आसानी से बना सकते हैं।

अपनी usb ड्राइव में डायरेक्टरी को कॉपी करने के लिए एक बैट फाइल बनाएँ।

xcopy /e /y c:\podcasts\*.* .\dir_on_usb_drive

अपने एमपी 3 प्लेयर पर बैट फाइल रखें और इन निर्देशों का उपयोग करके एक autorun.inf बनाएं

अब आपके पास अपनी समस्या के लिए अपना स्वयं का होमबिल्ट समाधान होना चाहिए, लेकिन यह निश्चित रूप से संभव है कि वहां पहले से तैयार समाधान हों :)


जबरदस्त टिप !!!! +10
inspite

1
सुझाव के लिए धन्यवाद। Autorun.inf होना चाहिए: [autorun] open = getpodcasts.bat एक्शन = कॉपी पॉडकास्ट प्लेयर को कम से कम winxp sp2, यह केवल AutoPlayer को खोलेगा, शीर्ष पर नए "कॉपी पॉडकास्ट प्लेयर" के साथ। मुझे नहीं लगता कि इससे आगे निकलने और स्क्रिप्ट को चुपचाप चलाने के लिए मजबूर करने का कोई तरीका है। इसके अलावा जाहिर है कि आपको ऑटोप्ले चालू करना होगा। कमांड के बाद मुझे विंडो पर पॉप की आवश्यकता होती है, वास्तव में एक बहुत बड़ा दोष है, लेकिन यह अभी भी वैसा नहीं है जैसा मैं देख रहा था।
daphshez

अच्छी सोच! :) +1

3
क्या Microsoft ने केवल अंगूठे ड्राइव पर ऑटोरन का उपयोग करने की क्षमता को नहीं हटाया था?
एले

10

लिनक्स के लिए:

अगर आपको थोड़ी सी भी स्क्रिप्टिंग का बुरा नहीं लगता है तो आप एक ऐसा डेमन लिख सकते हैं जो ईवेंट के लिए HAL सुनता है और फिर आपकी पसंद का एक उपकरण प्लग इन होने पर स्क्रिप्ट लॉन्च करता है। एक उदाहरण स्क्रिप्ट इस तरह दिखाई देगी :

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import dbus
import dbus.service
if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
    import dbus.glib
import gobject
import sys
import os

class DeviceManager:
    def __init__(self):
        self.bus = dbus.SystemBus()
        self.bus.add_signal_receiver(self.device_added,
                        'DeviceAdded',
                        'org.freedesktop.Hal.Manager',
                        'org.freedesktop.Hal',
                        '/org/freedesktop/Hal/Manager')

        self.bus.add_signal_receiver(self.device_removed,
                        'DeviceRemoved',
                        'org.freedesktop.Hal.Manager',
                        'org.freedesktop.Hal',
                        '/org/freedesktop/Hal/Manager')

    def udi_to_device(self, udi):
        return self.bus.get_object("org.freedesktop.Hal", udi)

    def device_added(self, udi):
        print 'Added', udi
        properties = self.udi_to_device(udi).GetAllProperties()
        if properties.get('info.category') == u'volume':
            label, dev = properties.get('volume.label'), properties.get('block.device')
            print 'Mounting %s on /media/%s' %(dev, label)
            os.system('pmount %s /media/%s' %(dev, label))

    def device_removed(self, udi):
        print 'Removed', udi

if __name__ == '__main__':
    m = DeviceManager()

    mainloop = gobject.MainLoop()
    try:
        mainloop.run()
    except KeyboardInterrupt:
        mainloop.quit()
        print 'Exiting...'
        sys.exit(0)

आपको device_added()इसे विशिष्ट डिवाइस तक सीमित करने के लिए फ़ंक्शन को संशोधित करना होगा और os.system()कॉल को अपने कस्टम स्क्रिप्ट के साथ बदलना होगा ।

इसे ड्राइव तक सीमित करने के लिए volume.uuidसंपत्ति का उपयोग किया जा सकता है और उपलब्ध संपत्तियों की पूरी सूची hal-deviceकार्यक्रम के साथ प्रदर्शित की जा सकती है ।

बूट पर डेमॉन शुरू करने के लिए, बस इसे से शुरू करें /etc/rc.local


मैं सत्यापित नहीं कर सकता कि यह एक अच्छा जवाब है, लेकिन आप अकेले मुसीबत के लिए एक पात्र हैं! किसी भी तरह, मैं कोशिश करूँगा और इसे गैर-प्रोग्रामर पर थोड़ा आसान बनाऊँगा;; मेरे जैसे;
इवो ​​फ्लिप

9

विंडोज 7 और डालने पर आपके फ्लैश / यूएसबी डिवाइस के लिए ऑटोसिंक!

SyncToy डाउनलोड करें और अपने फ़ोल्डर की जोड़ी और सिंक नाम ("SyncTest") स्थापित करें

देखें: कैसे-से: मेरे दस्तावेज़ों का एक रात का दर्पण बनाने के लिए SyncToy का उपयोग करना

  • कंप्यूटर प्रबंधन कंसोल चलाएँ
  • इवेंट व्यूअर / विंडोज़ लॉग / सिस्टम
  • मीडिया प्रविष्टि घटना का पता लगाएं
    • "पोर्टेबल डिवाइस एन्यूमरेटर सेवा सेवा ने चालू स्थिति में प्रवेश किया।" (आपको इस लॉग ईवेंट को ट्रिगर करने के लिए आपको इवेंट लॉग को खाली करने और मीडिया को बाहर निकालने / पुनः प्रसारित करने की आवश्यकता हो सकती है)
  • ऊपरी ईवेंट विंडो में, ईवेंट पर राइट क्लिक करें और "इस इवेंट में टास्क को अटैच करें" चुनें
  • विंडोज खुला "बेसिक टास्क विंडो बनाएँ"
  • अपने कार्य को एक नाम दें और अगला हिट दें
  • घटना की जानकारी पहले से ही भरी हुई है, अगले
  • एक्शन को "स्टार्ट ए प्रोग्राम" दिखाना चाहिए
  • प्रोग्राम विंडो प्रारंभ करें, SyncToyCmd.exe (या अपने चुने हुए सिंक ऐप) में ब्राउज़ करें
  • तर्क जोड़ें। यदि आपकी बैकअप जोड़ी को सिंकटेस्ट कहा जाता है, तो "-RsyncTest" दर्ज करें। उद्धरण न जोड़ें, -R के बाद एक स्थान न जोड़ें, सिंकटॉय कमांड लाइन (या शायद विंडोज 7) केस सेंसिटिव है इसलिए सिंकटेस्ट बराबर नहीं होता है!
  • अगला, समाप्त

कार्य को ठीक करने के लिए आप कार्य शेड्यूलर से चला सकते हैं। अब मेरे पास एकमात्र अन्य समस्या बैटरी पर अपना लैपटॉप चला रही थी, शर्तों टैब के तहत टास्क मैनेजर में, "केवल एसी पावर पर कंप्यूटर होने पर कार्य प्रारंभ करें" को अनचेक करें, अन्यथा एसी में प्लग होने पर ही कार्य चलेगा।

इसके अलावा, जैसे ही USB पोल और डिस्कनेक्ट / फिर से जुड़ते हैं, यह कार्य हर दो मिनट में चलेगा, वास्तव में थोड़े शांत, यह हर समय USB HDD के लिए ऑटो-सिंकिंग है :)


2

संपादित करें: यह बाहर सिंकबैक एसई एक ट्रिगर कार्रवाई है:

प्रोफ़ाइल खोलें, "जब" टैब पर जाएं, फिर "इंसर्ट" करें। यह आपको ड्राइव लेटर, लेबल या सीरियल नंबर द्वारा निर्दिष्ट करता है।

हालांकि एसई संस्करण मुक्त नहीं है और केवल विंडोज (मुझे लगता है)

या आप TweakUI का उपयोग करके अपने सिंकिंग प्रोग्राम (सिंकटॉय के लिए उदाहरण) के लिए एक ऑटोरन घटना को जोड़ने का प्रयास कर सकते हैं

  • TweakUI खोलें
  • मेरे कंप्यूटर पर जाएं -> ऑटोरन-> हैंडलर
  • क्रिएट पर क्लिक करें
  • खोजें जहां Synctoy स्थित है (डिफ़ॉल्ट रूप में प्रोग्राम फ़ाइलें)
  • प्रोग्राम लॉन्चर लोगो पर डबल क्लिक करें
  • नीचे दी गई सूची पर सभी मीडिया रेडियो बटन का चयन करें।
  • ओके पर क्लिक करें
  • अप्लाई पर क्लिक करें।

  • अब अपने पेन ड्राइव में प्लग करें।

  • मेरे कंप्यूटर में ड्राइव पर राइट क्लिक करें और गुण चुनें।
  • ऑटोप्ले टैब पर क्लिक करें
  • ड्रॉप डाउन मेनू से संगीत का चयन करें।
  • रेडियो बटन पर क्लिक करें "प्रदर्शन करने के लिए कार्रवाई चुनें"
  • अब SyncToy लोगो के साथ सिंक का चयन करें
  • ड्रॉप डाउन मेनू द्वारा दिए गए अन्य विकल्पों के लिए दोहराएँ
  • लागू करें पर क्लिक करें तो ठीक है।
  • अपने ड्राइव को निकालें और देखें कि क्या उसने काम किया है

मैं किसी भी (अन्य) प्रोग्राम को खोजने के लिए प्रतीत नहीं हो सकता है जो आपके यूएसबी डिवाइस को कनेक्ट करने पर स्वचालित रूप से शुरू हो जाएगा।

वे सभी सिंकिंग शुरू करने के लिए शेड्यूलिंग पर भरोसा करते हैं। आप यह तय कर सकते हैं कि यह हमारे हर शेड्यूल किया गया है, यह बस विफल हो जाएगा यदि यूएसबी डिवाइस कनेक्ट नहीं है और यदि यह है तो चलाएं।

लेकिन बहुत ईमानदार होना आसान होगा यदि आप केवल सिंक बटन पर क्लिक करते हैं, तो आपको अपने यूएसबी डिवाइस को मैन्युअल रूप से भी प्लग करना होगा।

वैसे भी मुझे एक तुल्यकालन उपकरण मिला है जो लिनक्स और विंडोज दोनों पर चलता है: DirSync प्रो जो पूरी तरह से स्वतंत्र है, जावा पर चलता है और एक अच्छा GUI है:

*  Synchronization
      o Powerful synchronization algorithm.
      o Bidirectional (Two way) and Unidirectional (One way) synchronization mode.
      o Option for various behavior of conflict resolution for Bidirectional Synchronization.
      o Synchronizes unlimited number of folders.
      o Large number of options to change the synchronization behavior.
      o Option to synchonise subdirectories recursively.
      o Synchronizes files/folders any file system (FAT, FAT16, FAT32, NTFS, WinFS, UDF, Ext2, Ext3, ...).
      o Synchronizes files from/to network drives
      o Synchronizes files from/to any mounted devices (Harddisks, USB-Sticks, Memory cards, External drives, CD/DVD's, ...).
      o Synchronization could be used for making incremental backups.
      o Option to create up to 50 backups from the modified/changed files before synchronization.
      o Option to define a backup folder.
      o Option for handling symbolic links.
      o Option for handling time-stamps.
* General
      o Easy, clear and user-friendly graphical user interface, no unnecessary gadget you never use.
      o Runs on every modern operating system including Windows™, Linux™ and Macintosh™
      o It is Portable! It does not need any installation. Just run the application!
      o Open source, it is 100% free of charge, 100% free of commercial text, 100% free of advertisements and 100% free of spyware.
      o No time/function limitations
      o Uses no local database, so no overhead
      o Does not need any installation. Just download and run it. You can put it on you USB-stick en you can run it on any computer/any platform.
* Logging
      o Advanced logging/reporting facilities. Just select a log level and define where to write the log.
      o Option to log on application level (default log)
      o Option to log on each directory level (dir log)
      o Option to define the log leven (how much to log)

1
आप संभवतः इसे एक शेड्यूल किए गए कार्य के साथ जोड़ सकते हैं जो विस्टा और विंडोज 7 में नई ट्रिगर घटनाओं का उपयोग कर रहा है जब एक यूएसबी डिवाइस जुड़ा हुआ है।
पैक्सैसी

1
मुझे लगता है कि अन्य उत्तर में वर्णित ऑटोरन समाधान चाल कर सकता है
इवो ​​फ्लिप् स

एक नोट के रूप में, मेरा मानना ​​है कि "
इनसर्ट

1

मैंने स्टीवन की विधि की कोशिश की, लेकिन यूएसबी इवेंट "इवेंट व्यूअर / विंडोज लॉग / सिस्टम" में नहीं दिख रहा था (मैं विंडोज 7 का उपयोग कर रहा हूं)। मैंने थोड़ा सा आसन किया, और पाया कि USB प्रविष्टि इवेंट "इवेंट व्यूअर / एप्लिकेशन और सर्विसेज लॉग / माइक्रोसॉफ्ट / विंडोज / DriverFrameworks-UserMode / ऑपरेशनल" में स्थित हैं। पहले लॉग को क्लीयर करने की कोशिश करें (जिस इवेंट को आप चाहते हैं उसे खोजने के लिए आसान बनाने के लिए), फिर यूएसबी फ्लैश ड्राइव डालें। लॉग को ताज़ा करें, और घटनाओं का एक गुच्छा दिखाना चाहिए। मैंने सबसे ऊपरी घटना (यानी सबसे हाल ही में) को उठाया, और उसे यह काम सौंपा (यह सुनिश्चित करें कि घटना का विवरण ऐसा लगे कि आपके द्वारा डाली गई विशेष USB ड्राइव में कुछ विशिष्ट है)।

मैंने वास्तविक सिंकिंग करने के लिए फ्री सिंकबैक प्रोग्राम का उपयोग किया। बहुत अच्छा काम करता है!


1

मैं बस कुछ बैचों के साथ एक AUTORUN.INF का उपयोग करके कुंजी फ़ोल्डरों को सिंक करता हूं। बहुत सरल बहुत प्रभावी है।

इसके अलावा, यदि आपके पास केवल एक रीड है, तो संग्रहीत ऑटोरुन.इनफ़ इसके हार्ड कॉन्ट्रैक्ट यूएसबी-स्टिक वायरस को फाइल करता है


1

आप बस भूल कर रहे हैं ""और अंत simply ".\dectory\" कि अंत \स्लैश के रूप में अच्छी तरह से।

मूल बैच सूत्र काम करता है, यह अभी दिन है, निर्देशिकाओं में बहुत सारे स्थान हैं, बैच फाइलें और कमांड प्रॉम्प्ट नफरत करते हैं।

मेरा कैसा दिखता है:

xcopy "F:\Web Stuff\Web Dev\Dev_FactorY Designs\*.*" ".\HTML_PROJ\Web Stuff\Web Dev\Dev_FactorY Designs\" /e /y

1

लिनक्स के तहत, कार्यक्रमों को सुनने के लिए लगातार चलने वाले प्रोग्राम के बजाय, आप पहले से चल रहे लोगों का उपयोग कर सकते हैं। आप udv में कुछ हुक जोड़ सकते हैं जो डिवाइस को एक अस्थायी स्थान पर रखता है और फिर निर्देशिकाओं का एक गुच्छा सिंक्रनाइज़ करने के लिए rsync लॉन्च करता है।

वैसे आप अपने डिवाइस हस्ताक्षर के अनुसार विशिष्ट क्रियाओं को परिभाषित कर सकते हैं: एक विशिष्ट कुंजी डालने पर अपने कार्य दस्तावेजों को सिंक्रनाइज़ करें, या एक यूएसबी मास स्टोरेज एमपी 3 प्लेयर डाला जाता है, तो आपके संगीत या एक किंडल प्लग करते समय आपकी किताबें।


1

जब मैं रास्पबेरी पाई के साथ थोड़ी निगरानी प्रणाली स्थापित कर रहा था, जो कि रासपियन व्हीज़ी पर चलती थी, मुझे लगातार एफ़टीपी फ़ोल्डर से सभी फाइलों को स्थानांतरित करने की आवश्यकता थी जो आईपी कैमरा द्वारा अपलोड की गई थी। इसलिए, मैंने होम डायरेक्टरी (~) में स्क्रिप्ट लिखी और इसे क्रोन के साथ मिनट में एक बार बुलाया

crontab -e
*/1 * * * * sudo ~/move_images_to_usb

Move_images_to_usb साधारण बैश स्क्रिप्ट है, मैं इससे पहले बैश पर स्क्रिप्टिंग नहीं कर रहा था, लेकिन ...

#!/bin/bash

if df | grep "sda1"
then
    mkdir /media/usb0/ipcam1
    cp -r /var/ftp /media/usb0/ipcam1
    rm /var/ftp/*
fi

जब usb ड्राइव डाला जाता है, इसका नाम sda1 (एक और ड्राइव sdb1 होगा, इसलिए यह काम नहीं करेगा)


0

मैं करेनवेयर के एक रेप्लिकेटर प्रोग्राम का उपयोग करता हूं। वह विंडोज के लिए बहुत सारे छोटे उपयोगी कार्यक्रमों के लेखक हैं (शुरुआती W98 / W2K / XP दिनों से PowerToys सोचते हैं)।

यहाँ लिंक है। http://www.karenware.com/powertools/ptreplicator.asp

इसे रात के शेड्यूल पर सेट करें। यदि USB ड्राइव प्लग इन है, तो यह USB सामग्री के साथ डाउनलोड फ़ोल्डर को सिंक करेगा।

यह निःशुल्क है!


धन्यवाद; लेकिन मेरी समस्या खुद कॉपी नहीं है (यह एक डायरेक्टरी में रहने वाली फाइल का सिर्फ एक गुच्छा है), लेकिन यह कॉपी सही समय पर होती है। एक निर्धारित कार्य अच्छा है, लेकिन काफी नहीं है जो मैं देख रहा था।
डेफशीज़

0

यह एक पुराना धागा है, लेकिन मुझे लगा कि मैं इसे यहां किसी के लिए भी चाहता हूं जो इसे चाहता है। प्रासंगिक जानकारी को अपनी आवश्यकताओं के अनुरूप बदलें फिर यह आपके लिए यह सब करेगा। इसका श्रेय /superuser//users/232313/tyler को दिया गया, जिन्होंने इस की पहली यात्रा की।

@echo off
cls
echo waiting
goto check

Change the STUFF TO COPY location to the folder that you want 
everything inside to be send to the usb's, and change the 3 instances of 
G: to whatever drive letter that the USB uses.
Good Luck!

:start
set choice=
robocopy "C:\STUFFTOCOPY" "G:" /E
echo Waiting for removal
goto wait

:check
timeout /t 1 /nobreak >nul
if exist "G:" (goto start) else goto check

:wait
timeout /t 1 /nobreak >nul
if exist "G:" (goto wait) else (
echo removed
echo waiting
goto check
)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.