Sempre fui um aluno inquieto, sempre querendo aproveitar oportunidades como ... por exemplo, copiar os exames do semestre do pendrive do professor ou coisa parecida. Quando eu estava no colégio (curso de informática), eu queria programar "algo" que fizesse o seguinte:
- Detectar quando um dispositivo USB está conectado ao computador da sala de aula
- Copie todo o conteúdo desse dispositivo para o computador
Isso me permitiria fazer o exame bem mais cedo, bastaria o professor conectar sua memória USB (pendrive) ao computador e pronto.
Infelizmente no meu instituto os computadores tinham Windows e ... Nunca e nunca aprendi a programar para este SO.
Porém, agora uso Linux (obviamente que não? KKK!), e com o conhecimento que pude adquirir ao longo desses anos, agora SIM! Já consigo conseguir isso com Linux
Ou seja, programei um script simples que faz o seguinte:
1. Crie a pasta /home/.USBDRIVES/
2. Ele verifica a cada 5 segundos se há algum dispositivo USB (ou CD / DVD) conectado ao computador.
3. Caso um esteja conectado, será criada uma pasta dentro de /home/.USBDRIVES/ com o nome do USB (por exemplo: memória-2gb) e também copiará todos os arquivos .doc, .pdf, etc (aqui a lista) para esta pasta que você acabou de criar.
4. Caso não haja USB conectado, bastará aguardar 5 segundos para reiniciar a verificação que expliquei acima
Aqui está o script e o arquivo que contém os formatos a serem copiados:
Para que o script funcione sem problemas, é melhor que seja iniciado com privilégios administrativos (root), pois é óbvio que precisa ser iniciado próximo ao computador, desta forma garantimos que se o computador for reiniciado ou desligado, quando você iniciar o script novamente ele estará lá funcionando, pronto para extrair o que quisermos de qualquer USB
Vamos abrir um terminal ... uma vez aberto ...
1. Suponha que temos ambos os arquivos em / opt / (/opt/usb-spy.sh y /opt/usb-spy.files), devemos dar-lhe privilégios de execução:
sudo chmod +x /opt/usb-spy.sh
2. Abrimos o arquivo /etc/rc.local :
sudo nano /etc/rc.local
3. Nele escrevemos acima da linha final (sair 0) o seguinte:
/opt/usb-spy.sh &
4. Agora pressionamos [Ctrl] + [X] para salvar e sair do arquivo, pressionamos [S] ou [Y] (dependendo do idioma do sistema) e depois [Enter]. Isso será o suficiente para que as alterações que fizemos sejam salvas.
E pronto, isso será o suficiente para que o script comece como root quando ligarmos o computador.
É importante verificar se o arquivo usb-espião.arquivos está no mesmo diretório que usb-spy.sh
Agora... vou explicar um pouco sobre o funcionamento interno do script, pois sei que existem muitos amantes do Bash por aqui
Q: Como o script sabe que um dispositivo USB está conectado? R: No arquivo / etc / mtab de nosso sistema estão os dispositivos ou partições que estão montados em nosso sistema. Pela linha 23 do script sabe-se se existe um USB conectado ou não (tornando cat to mtab e grep media)
Q: Sim, mas Como o script sabe se cat e grep retornam alguns dados para nós ou não? R: Por meio de um if, then, else loop que começa na linha 24.
Q: Como fazer para copiar apenas arquivos com as extensões desejadas? (.doc, .pdf, etc)
R: Usando rsync com vários parâmetros, isso está na linha 34. De forma simples, com rsync eu copio apenas os arquivos que correspondem ao filtro usb-spy.files, cada linha é um filtro, por assim dizer. Eu também passo o parâmetro --prune-empty-dirs para rsync para que não crie diretórios vazios para mim.
Não há muito o que explicar, o script é muito simples de entender
Se alguém tiver alguma dúvida ou dúvida, reclamação, ideia ou sugestão, por favor, diga e prometo ajudá-lo no máximo que puder.
Bem, eu estava pensando em colocar algo como: «este script é apenas para fins educacionais, não use com arquivos prejudiciais» …mas…que diabos!, use para o que quiser, já é hora de nós alunos termos algum tipo de vantagem contra os professores que nos oprimem
lembranças