Bagaimana saya bisa secara otomatis menyalin file ke drive USB ketika saya menghubungkannya ke komputer saya?


18

Saya mencari solusi untuk menyalin semua file dari direktori tertentu pada hard drive, ke direktori tertentu pada perangkat memori USB, setelah perangkat ini terhubung.

Saya memiliki program yang mengunduh episode podcast untuk saya.

Saya ingin file-file ini dipindahkan secara otomatis (atau setidaknya disalin) ke pemutar mp3 saya setelah saya menghubungkannya ke komputer.

Saya memiliki mesin windows xp dan linux, jadi solusi untuk semua itu akan bekerja untuk saya.


2
Saya menganggap Anda tidak puas dengan sinkronisasi yang dijadwalkan?
Ivo Flipse

Jawaban:


23

Anda dapat dengan mudah membangun solusi Anda sendiri untuk Windows menggunakan autorun.inf dan file .bat.

Buat file bat untuk menyalin direktori ke drive usb Anda.

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

Tempatkan file kelelawar di pemutar mp3 Anda dan buat autorun.inf menggunakan instruksi ini

Sekarang Anda harus memiliki solusi homebuilt Anda sendiri untuk masalah Anda, tetapi tentu saja mungkin ada solusi pra-dibuat di luar sana :)


tip yang luar biasa !!!! +10
in.spite

1
Terima kasih atas sarannya. Autorun.inf seharusnya: [autorun] open = getpodcasts.bat action = salin podcast ke pemain Setidaknya winxp sp2, ini hanya akan membuka AutoPlayer, dengan "copy podcast ke pemain" baru di atas. Saya tidak berpikir ada cara untuk menimpa ini dan memaksanya untuk menjalankan skrip secara diam-diam. Jelas juga Anda harus mengaktifkan AutoPlay. Memiliki perintah yang saya butuhkan pop pada jendela sebenarnya adalah suatu keharusan besar, tetapi masih tidak persis apa yang saya cari.
daphshez

pemikiran yang bagus! :) +1

3
Bukankah Microsoft hanya menghapus kemampuan untuk menggunakan autorun pada thumb drive?
ale

10

Untuk Linux:

Jika Anda tidak keberatan dengan skrip Python kecil, Anda bisa menulis daemon yang mendengarkan HAL untuk acara dan kemudian meluncurkan skrip setelah perangkat pilihan Anda telah terhubung. Contoh skrip akan terlihat seperti ini :

#!/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)

Anda hanya perlu memodifikasi device_added()fungsi untuk membatasi ke perangkat tertentu dan mengganti os.system()panggilan dengan skrip kustom Anda.

Untuk membatasi ke drive volume.uuidproperti dapat digunakan dan daftar lengkap properti yang tersedia dapat ditampilkan dengan hal-deviceprogram.

Untuk memulai daemon saat boot, mulailah dari /etc/rc.local.


Saya tidak dapat memverifikasi apakah ini jawaban yang baik, tetapi Anda layak mendapatkan upvote untuk masalahnya sendiri! Bagaimanapun, saya akan mencoba dan membuatnya sedikit lebih mudah pada non-programmer di sini ;-) seperti saya!
Ivo Flipse

9

Windows 7 dan autosync ke perangkat flash / USB Anda saat disisipkan!

Unduh SyncToy dan buat nama folder pairing dan sync Anda ("SyncTest")

lihat: Bagaimana-ke: Menggunakan SyncToy untuk membuat cermin My Documents setiap malam

  • Jalankan konsol manajemen komputer
  • Penampil acara / log / sistem windows
  • Temukan acara penyisipan media
    • “Layanan Layanan Pencacah Perangkat Portabel memasuki kondisi berjalan.” (Anda mungkin perlu menghapus log peristiwa dan mengeluarkan / memasukkan kembali media Anda untuk memicu peristiwa log ini)
  • Di jendela acara atas, klik kanan pada acara tersebut dan pilih "Lampirkan Tugas Ke Acara Ini"
  • Windows membuka "Buat Jendela Tugas Dasar"
  • Beri nama pada tugas Anda dan tekan berikutnya
  • Informasi acara sudah diisi, selanjutnya
  • Tindakan harus menunjukkan "Mulai Program", selanjutnya
  • Di jendela Mulai Program, telusuri ke SyncToyCmd.exe (atau aplikasi sinkronisasi yang Anda pilih)
  • Tambahkan argumen. Jika pasangan cadangan Anda disebut SyncTest, masukkan "-RsyncTest". Jangan tambahkan tanda kutip, jangan tambahkan spasi setelah -R, baris perintah SyncToy (atau mungkin Windows 7) adalah case sensative sehingga SyncTest tidak sama dengan synctest!
  • Selanjutnya, Selesai

Anda dapat menjalankan tugas langsung dari Penjadwal Tugas untuk memverifikasi itu berfungsi. Sekarang satu-satunya masalah lain yang saya miliki adalah menjalankan laptop saya pada baterai, di Task Manager di bawah tab kondisi, hapus centang "Mulai tugas hanya jika komputer pada daya AC", jika tidak tugas hanya akan berjalan ketika AC dicolokkan.

Juga, ketika polling USB dan pemutusan / menghubungkan kembali, tugas ini akan berjalan setiap beberapa menit, sebenarnya agak keren, ini otomatis disinkronkan ke HDD USB setiap saat :)


2

Sunting: ternyata SyncBack SE memiliki aksi pemicu:

Buka Profil, buka tab "Kapan", lalu "Sisipkan". Ini memungkinkan Anda menentukan dengan huruf drive, label, atau nomor seri.

Namun versi SE tidak gratis dan hanya Windows (saya pikir)

Atau Anda dapat mencoba menambahkan acara Autorun untuk program sinkronisasi Anda (misalnya untuk SyncToy) menggunakan TweakUI

  • Buka TweakUI
  • Buka komputer saya -> autorun–> penangan
  • Klik buat
  • Temukan di mana Synctoy berada (file program sebagai default)
  • Klik dua kali logo peluncur program
  • Pilih semua tombol radio media pada daftar di bawah ini.
  • Klik ok
  • Klik berlaku.

  • Sekarang colokkan pen drive Anda.

  • Di komputer saya klik kanan drive dan pilih properti.
  • Klik tab putar otomatis
  • Pilih musik dari menu drop down.
  • Klik tombol radio "pilih tindakan yang akan dilakukan"
  • Sekarang pilih sinkronisasi dengan logo SyncToy
  • Ulangi untuk opsi lain yang diberikan oleh menu drop down
  • Klik berlaku lalu ok.
  • Hapus dan masukkan kembali drive Anda untuk melihat apakah drive itu berfungsi

Sepertinya saya tidak dapat menemukan program (lainnya) yang akan mulai secara otomatis ketika Anda menghubungkan perangkat USB Anda.

Mereka semua mengandalkan penjadwalan untuk mulai menyinkronkan. Anda dapat memutuskan untuk menjadwalkannya setiap kami, itu hanya akan gagal jika perangkat USB tidak terhubung dan berjalan jika itu.

Tapi terlalu jujur ​​akan lebih mudah jika Anda cukup mengklik tombol sinkronisasi, Anda harus mencolokkan perangkat USB Anda secara manual juga.

Pokoknya saya juga menemukan alat sinkronisasi yang berjalan di Linux dan Windows: DirSync Pro yang sepenuhnya gratis, berjalan di Jawa dan memiliki GUI yang bagus:

*  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
Anda mungkin bisa menggabungkan ini dengan tugas schduled yang menggunakan peristiwa pemicu baru di Vista dan Windows 7 untuk menjalankannya ketika perangkat usb terhubung.
Paxxi

1
Saya pikir solusi autorun yang disebutkan dalam jawaban lain bisa melakukan trik
Ivo Flipse

Hanya sebagai catatan, saya percaya "pada insert" fitur baru untuk SyncBack SE 5.
daphshez

1

Saya mencoba metode Steven, tetapi acara USB tidak muncul di "Event Viewer / Windows Logs / System" (Saya menggunakan Windows 7). Saya mencari-cari sedikit, dan menemukan acara penyisipan USB terletak di "Event Viewer / Aplikasi dan Log Layanan / Microsoft / Windows / DriverFrameworks-UserMode / Operational". Coba bersihkan log terlebih dahulu (hanya untuk membuatnya lebih mudah menemukan acara yang Anda inginkan), lalu masukkan USB flash drive. Segarkan log, dan banyak acara akan muncul. Saya memilih acara paling atas (yaitu yang paling baru), dan menugaskan tugas itu (pastikan uraian acara sepertinya memiliki sesuatu yang spesifik untuk drive USB tertentu yang Anda masukkan).

Saya menggunakan program SyncBack gratis untuk melakukan sinkronisasi yang sebenarnya. Bagus sekali!


1

Saya hanya menggunakan AUTORUN.INF dengan beberapa kumpulan untuk menyinkronkan folder utama. Sangat sederhana, sangat efektif.

Juga, jika Anda memiliki file read-only, arsipkan file autorun.inf dengan kontrak keras usb-stick virus


1

Anda hanya lupa ""dan mengakhiri ".\dectory\" ← Ujian akhir \juga.

Formula batch asli berfungsi, Baru saja beberapa hari ini, Ada banyak ruang di direktori, file batch, dan command prompt BENCI itu.

Bagaimana penampilanku:

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

1

Di Linux, alih-alih menjalankan program yang terus menerus untuk mendengarkan acara, Anda dapat menggunakan yang sudah berjalan. Anda dapat menambahkan beberapa kait ke udev yang memasang perangkat ke lokasi sementara dan kemudian meluncurkan rsync untuk menyinkronkan banyak direktori.

Omong-omong, Anda dapat menentukan tindakan spesifik sesuai dengan tanda tangan perangkat Anda: menyinkronkan dokumen kerja Anda ketika kunci tertentu dimasukkan, atau musik Anda jika MP3 player penyimpanan massal USB dimasukkan, atau buku-buku Anda saat memasang Kindle di sana.


1

Ketika saya membuat sedikit sistem pengawasan dengan Raspberry Pi, yang berjalan pada Raspbian Wheezy, saya harus terus memindahkan semua file dari folder FTP yang diunggah oleh kamera IP. Jadi, saya menulis skrip di direktori home (~) dan menyebutnya satu menit sekali dengan cron

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

move_images_to_usb adalah skrip bash biasa, saya tidak skrip sebelumnya di bash, tapi ...

#!/bin/bash

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

Ketika usb drive dimasukkan, namanya sda1 (drive lain akan sdb1, jadi tidak akan berfungsi)


0

Saya menggunakan program replikator dari Karenware. Dia adalah penulis banyak program kecil yang berguna untuk Windows (pikirkan PowerToys dari awal W98 / W2K / XP hari).

Inilah tautannya. http://www.karenware.com/powertools/ptreplicator.asp

Atur pada jadwal malam hari. Jika drive USB dicolokkan, itu akan menyinkronkan folder unduhan dengan konten USB.

Gratis!


Terima kasih; tetapi masalah saya bukan salinan itu sendiri (itu hanya sekelompok file yang berada di satu direktori), tetapi membuat salinan ini terjadi pada waktu yang tepat. Tugas yang dijadwalkan itu bagus, tapi tidak seperti yang saya cari.
daphshez

0

Ini adalah utas lama, tetapi saya pikir saya akan memilah ini di sini untuk siapa saja yang menginginkannya. Ubah informasi yang relevan sesuai dengan kebutuhan Anda, maka itu akan melakukan semuanya untuk Anda. Kredit untuk /superuser//users/232313/tyler yang membuat iterasi pertama ini.

@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
)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.