回答:
autorun.infと.batファイルを使用して、Windows用の独自のソリューションを非常に簡単に構築できます。
batファイルを作成して、ディレクトリをUSBドライブにコピーします。
xcopy /e /y c:\podcasts\*.* .\dir_on_usb_drive
mp3プレーヤーにbatファイルを配置し、これらの手順を使用してautorun.infを作成します
今、あなたはあなたの問題に対してあなた自身の自家製の解決策を持っているはずですが、それはそこに事前に作られた解決策があることは確かに可能です:)
Linuxの場合:
あなたは少しPythonスクリプトを気にしない場合は、イベント用の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
ます。
Windows 7および挿入時にフラッシュ/ USBデバイスに自動同期!
SyncToyをダウンロードし、フォルダーのペアリングと同期名を確立します( "SyncTest")
参照:方法:SyncToyを使用してマイドキュメントの夜間ミラーを作成する
タスクスケジューラからタスクを直接実行して、タスクが機能することを確認できます。今、私が抱えていた他の唯一の問題は、ラップトップをバッテリーで実行することでした。タスクマネージャーの[条件]タブで、[コンピューターがAC電源の場合のみタスクを開始する]をオフにします。
また、USBがポーリングし、切断/再接続すると、このタスクは数分ごとに実行されます。実際にはとてもクールで、常にUSB HDDに自動同期されます:)
編集:SyncBack SEにはトリガーアクションがあります:
プロファイルを開き、「いつ」タブ、「挿入」の順に移動します。ドライブ文字、ラベル、またはシリアル番号で指定できます。
しかし、SEバージョンは無料ではなく、Windowsのみです(私は思う)
または、TweakUIを使用して、同期プログラムの自動実行イベント(SyncToyの例)を追加してみてください。
適用をクリックします。
次に、ペンドライブを差し込みます。
USBデバイスを接続すると自動的に起動する(他の)プログラムは見つかりません。
それらはすべて、同期を開始するためにスケジューリングに依存しています。USBデバイスが接続されていない場合は単に失敗し、接続されている場合は実行されるだけで、スケジュールするように決定できます。
しかし、正直なところ、単に同期ボタンをクリックするだけで簡単になり、USBデバイスも手動で接続する必要があります。
とにかく、LinuxとWindowsの両方で実行される同期ツールを見つけました。DirSyncProは完全に無料で、Javaで実行され、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)
スティーブンの方法を試しましたが、USBイベントが「イベントビューアー/ Windowsログ/システム」に表示されませんでした(Windows 7を使用しています)。ちょっと調べてみると、USB挿入イベントが「イベントビューアー/アプリケーションとサービスログ/ Microsoft / Windows / DriverFrameworks-UserMode / Operational」にあることがわかりました。最初にログを消去して(必要なイベントを見つけやすくするために)、USBフラッシュドライブを挿入してください。ログを更新すると、一連のイベントが表示されます。一番上のイベント(つまり、最新のイベント)を選択し、それにタスクを割り当てました(イベントの説明に、挿入した特定のUSBドライブに固有の何かがあるようにしてください)。
無料のSyncBackプログラムを使用して、実際の同期を行いました。よく働く!
Raspbian Wheezyで実行されるRaspberry Piで小さな監視システムをセットアップしていたとき、IPカメラによってアップロードされたFTPフォルダーからすべてのファイルを常に移動する必要がありました。だから、私はホームディレクトリにスクリプトを書いて(〜)、cronで毎分それを呼び出しました
crontab -e
*/1 * * * * sudo ~/move_images_to_usb
move_images_to_usbは普通のbashスクリプトです。bashを実行する前はスクリプトを作成していませんでしたが、...
#!/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になるため、動作しません)
カレンウェアのレプリケータープログラムを使用しています。彼女は、Windows用の多くの小さな便利なプログラムの著者です(初期のW98 / W2K / XP時代のPowerToysを考えてください)。
こちらがリンクです。http://www.karenware.com/powertools/ptreplicator.asp
夜間のスケジュールで設定してください。USBドライブが接続されている場合、ダウンロードフォルダとUSBコンテンツが同期されます。
それは無料です!
これは古いスレッドですが、私はそれを望んでいる人のためにここでこれをするだろうと思いました。ニーズに合わせて関連情報を変更すると、すべての作業が自動的に行われます。これの最初の反復を行った/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
)