Vraag Automatische back-up wanneer USB-stick is geplaatst


Als dit niet de beste plaats is om deze vraag te plaatsen, kunt u mij alstublieft verwijzen naar een meer geschikte plaats om dit te posten.

Wat ik probeer te doen:

Ik heb een USB-drive, dat is het fat32 en de naam is JavaClasses. Wanneer ik het steek, wordt het gemonteerd en het toegankelijke pad is /media/bill/JavaClasses. Ik heb een script dat, wanneer ik het uitvoer, controleert of het JavaClasses map bestaat, als dit het geval is, zal het een map maken met dit formaat, yyyymmddhhmm. Het script kopieert (back-up) mijn eclipse-map naar deze nieuwe map.

Ik heb een nieuwe regel gemaakt onder /etc/udev/rules.d/85-javaclasses.rules. Hiermee wordt het bovenstaande script gestart. Het script heeft een vertraging van 2 seconden om de montage mogelijk te maken.

Huidige situatie:

Het script loopt prima als ik handmatig binnenloop. Het wordt niet automatisch uitgevoerd wanneer de drive is aangesloten.

De opdrachtregel en info:

Dit is het commando in de 85-javaclasses.rules.

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6545", RUN+="/home/bill/bin/javaclasses.sh"

Dit is wat ik krijg als ik ren

udevadm info --attribute-walk --name /dev/sdb1


looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/usb10/10-1/10-1.4':
    KERNELS=="10-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="1.4"
    ATTRS{idVendor}=="0930"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="10"
    ATTRS{devnum}=="4"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="200mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0100"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="001A4D5E4020ED5199130595"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="2197"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="6545"
    ATTRS{bDeviceClass}=="00"
    ATTRS{product}=="DataTraveler 2.0"

Kan iemand me in een richting wijzen om dit te laten oplossen? Bedankt voor je tijd.


1
2017-08-06 23:54


oorsprong




antwoorden:


Probeer gewoon een eenvoudige opdrachtkring, zeer lage verwerkingskracht, maar nuttig.

#!/bin/bash
x=0
while [ true ]
    do if [ $x = 0 ]
        then if [ -s /media/myflashdrive/* ]
            then bash /home/user/myscript.sh
            x=1
        fi
        else if [ -s /media/myflashdrive/* ]
            then true
            else x=0
        fi
     fi
sleep 10
done

Sla dit op in / etc / en voeg deze regel toe aan /etc/rc.local:

bash /etc/this_script.sh &

Voeg dat toe vóór de uitgang 0. Gedaan! Wanneer je flashdrive-mounts myscript.sh zullen uitvoeren, dan zal x, wanneer het niet aangekoppeld is, opnieuw gelijk zijn aan 0 en zal het script er opnieuw naar op zoek gaan om het aan te sluiten!


1
2017-08-07 05:26



Dit zal een non-stop lus uitvoeren om de 10 seconden naar het medium te zoeken. Zodra het een back-up maakt, stopt het programma. Het probleem hier is als ik 2-3 keer per dag een back-up wil maken zonder opnieuw op te starten. Ik ben op zoek naar een oplossing die udev zou kunnen gebruiken. - EglCode