Qual condição para identificar que pen drive foi conectada?

1. Qual condição para identificar que pen drive foi conectada?

Ede
ede_linux

(usa Ubuntu)

Enviado em 02/09/2017 - 22:27h

Olá a todos,

Existe maneira de quando introduzir uma pen no pc o seu conteudo ser automaticamente copiado para uma pasta e a pen apagada?
Até agora consegui descobrir como validar a fase da pen estar ligada. Acontece que não sei qual será o nome que ela irá assumir no directrório /dev/xxxx. Por isso como posso fazer o comando cp?

#!/bin/bash

if [ -e "/dev/sdc" ]
then
date
#exit 0
fi


Para que ele esteja sempre a rodar imagino que baste colocar o código no loop. Loop esse que pode ser interrompido caso pressione uma tecla. Mas isso sei fazer.
O que preciso de ideias/orientação é como vou fazer para que ele detecte que a pen foi ligado e como vai ser montada na pasta /dev. Estou também em dúvida se ela será sempre montada na pasta /dev/sdc. Pois apenas testei num micro!

Obrigado


  


2. Re: Qual condição para identificar que pen drive foi conectada?

Eduardo
73du4rd0

(usa Void Linux)

Enviado em 02/09/2017 - 23:17h

O pendrive vai ser montado de acordo com a ordem em que foi inserido, no caso o HD (ou o disco onde o sistema estiver instalado) vai ser /dev/sda, normalmente pendrives são montados em /dev/sdb, exceto quando existem outros discos montados com o sistema, como um SSD que pode ser /dev/sdb, assim o pendrive seria /dev/sdc/. Se você inserisse outro pendrive na máquina este seria /dev/sdd... e assim consecutivamente. A questão da montagem varia da configuração do udisk, da distro e do ambiente gráfico. Algumas o montam automaticamente em /mnt/run/... outras em /media, algumas nem montam automaticamente o pendrive ao plugar, então seria mais aconselhável, ter como alvo alguma distro na qual conheça essas infos.


3. Re: Qual condição para identificar que pen drive foi conectada?

Ede
ede_linux

(usa Ubuntu)

Enviado em 03/09/2017 - 17:51h

Ok, então significa que o pen drive não é montado sempre no mesmo local. Depende da distro.
A distro que vou utilizar é o Lubuntu 16.04 LTS, base debian.

No caso do Lubuntu ele monta automáticamente em /media/

Segundo o que pesquisei tenho que ler sobre o udev e ver o que aparece no directório /sys/, certo?

Obrigado


4. Re: Qual condição para identificar que pen drive foi conectada?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/09/2017 - 19:19h

ede_linux escreveu:

Ok, então significa que o pen drive não é montado sempre no mesmo local. Depende da distro.
A distro que vou utilizar é o Lubuntu 16.04 LTS, base debian.

No caso do Lubuntu ele monta automáticamente em /media/

Segundo o que pesquisei tenho que ler sobre o udev e ver o que aparece no directório /sys/, certo?

Obrigado


Ede, boa noite.
Pegue as informações do pendrive que foi "plugado" nas ultimas linhas do dmesg.
Att.:
MSO


5. Re: Qual condição para identificar que pen drive foi conectada?

Ede
ede_linux

(usa Ubuntu)

Enviado em 03/09/2017 - 19:54h

Olá msoliver,

Então significa que terei que criar um script com esta ordem de trabalhos:

1-fica à escuta de todos os pen drivers que são plugados;
2-pegua a informação no dmesg;
3-copia todo o conteudo que está montado no /media/
4-apaga tudo
5-faz unmount da pen drive

certo?


6. Re: Qual condição para identificar que pen drive foi conectada?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/09/2017 - 20:02h

ede_linux escreveu:

Olá msoliver,

Então significa que terei que criar um script com esta ordem de trabalhos:

1-fica à escuta de todos os pen drivers que são plugados;
2-pegua a informação no dmesg;
3-copia todo o conteudo que está montado no /media/
4-apaga tudo
5-faz unmount da pen drive
certo?


Ede, é quase isso . . . .
No meu caso não monta automaticamente, então:
Identifico o pen que foi plugado,
monto,
copio
.
.
.

MSO



7. Re: Qual condição para identificar que pen drive foi conectada?

Ede
ede_linux

(usa Ubuntu)

Enviado em 03/09/2017 - 20:12h

Ok,

A minha principal dúvida é como colocar o script na escuta!
Talvez se o coloca a correr num loop infinito onde ele lê o valor do dmesg consiga bons resultados.

Estou a ler o relatorio do dmesg e fico um pouco confuso.
Não será melhor utilizar o lsblk?


8. Re: Qual condição para identificar que pen drive foi conectada?

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 03/09/2017 - 21:11h

Se for utilizar sempre o mesmo pendrive, você pode usar o UUID do pendrive, conseguido através do comando "blkid". O UUID do dispositivo será sempre o mesmo, a menos que seja formatado. Com o UUID, seu script consegue rastrear qual device o dispositivo recebeu(/dev/sd??). Tendo o device, você consegue o ponto de montagem.

Boa sorte!


9. Re: Qual condição para identificar que pen drive foi conectada?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 03/09/2017 - 21:52h

ede_linux escreveu:

Ok,

A minha principal dúvida é como colocar o script na escuta!
Talvez se o coloca a correr num loop infinito onde ele lê o valor do dmesg consiga bons resultados.

Estou a ler o relatorio do dmesg e fico um pouco confuso.
Não será melhor utilizar o lsblk?


Ede, quando o pendrive é conectado, ele é montado automaticamente?
Se a resposta é sim, busque pelas informações na saída do comando "mount".

Segue sugestão para monitorar a saída do "mount"

#!/bin/bash
#NLAnt => Nº de LINHAS Anterior
#NLAtl => Nº de LINHAS Atual
NLAnt=$(mount|wc -l)
tput clear
while :;do
NLAtl=$(mount|wc -l)
((NLAtl != NLAnt)) && { echo "$(date +%s.%3N): MOUNT FOI ALTERADO: ATUAL: $NLAtl : ANT: $NLAnt" ; NLAnt="$NLAtl" ; sleep 10 ; } || { echo "$(date +%s.%3N): MOUNT NAO ALTEROU: ATUAL: $NLAtl : ANT: $NLAnt" ; sleep 1 ; }
done

Att.: MSO






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts