O script é executado repetidamente quando o USB é montado no Ubuntu

0

O primeiro post é tão bom se eu não der informações suficientes na primeira vez.

Eu tenho um conjunto de scripts para ser executado quando qualquer uma das duas unidades USB estiverem conectadas ao meu servidor Ubuntu. Eu tenho o FSTAB configurado corretamente para as duas unidades para que elas sejam montadas com "mount -a". Meu script é configurado em regras UDEV para que, quando as unidades forem conectadas, elas sejam montadas e rsyncem dados na unidade. Meu problema é que o script parece ser executado várias vezes, criando uma nova instância o tempo todo.

Por que eu acho que isso acontece porque o rsync gera até 60 processos, o que eu tenho certeza que não vejo quando normalmente uso o rsync.

Isso também significa que, como a unidade está sempre ocupada, não consigo desmontar a unidade para removê-la.

Cópia de script:

#!/bin/bash

makeAttached() {
    sudo mount -a
}

removeAttached() {
    sudo umount /media/StuffForDad/
    sudo umount /media/StuffForDad2/
}

copyMovies() {
    if mountpoint -q -- /media/StuffForDad/
        then
            sudo rsync -av --exclude-from '/home/usr/CurrentMovies.txt' /media/plexdrive/Videos/ /media/StuffForDad/
        elif mountpoint -q -- /media/StuffForDad2/
        then
            sudo rsync -av --exclude-from '/home/usr/CurrentMovies.txt' /media/plexdrive/Videos/ /media/StuffForDad2/
    fi
}

makeAttached;
copyMovies;
removeAttached;

Cópia da regra UDEV:

ACTION="add", ATTRS{idVendor}=="IDNO", ATTRS{idProduct}="IDNO", RUN+="/home/usr/firstscript.sh"
ACTION="add", ATTRS{idVendor}=="IDNO2", ATTRS{idProduct}="IDNO2", RUN+="/home/usr/firstscript.sh"

Eu removi NÚMEROS DE ID da regra, mas você tem a ideia.

Como faço para que esse script seja executado apenas uma vez quando a unidade está conectada e não novamente até que a unidade tenha sido removida e conectada novamente?

    
por Andrew Marsh 02.01.2016 / 04:57

0 respostas