Gammu - Script para geração de configuração - codinome "gammuninja"
Publicado por Roberto Fettuccia (última atualização em 31/03/2014)
[ Hits: 5.617 ]
Download gammuninja-scan_1.3.sh
Prezados colegas, é com prazer que venho publicar este script, que vem por apresentar uma solução para o arquivo de configuração do Gammu, o trabalho dele é testar porta a porta, procurando por configuração válidas.
Ou seja, ele testa em /dev/* os dispositivos possíveis, gerando automaticamente um arquivo de configuração para [cada] modem GSM...
No meu caso, testei quatro modems GSM USB de marcas diferentes e portas "dev" diferentes, ele gerou os mesmos quatro arquivos de configuração, com um adicional: ele concatena no arquivo o IMEI do modem.
Interessante não?
Aqui no trabalho temos um sistema que está em parceria com o pfSense, ele tem um DB com os vouchers, o usuário solicita o voucher pela página do sistema, aí o sistema pega o voucher/nome, registra no banco e dispara o SMS com o voucher para o usuário...
O problema...
O Gammu tem problemas no quesito agilidade, ou seja, cada SMS demorou cerca de 8 segundos, se for solicitado 1000 vouchers, aí a demora... 8x1000 = 8000 segundos, o que equivale a pouco mais de 1 hora. Em se tratando de agilidade, nesse caso em um modem é muito tempo!
Solução: cada SMS é enviado por um modem, que não esteja ocupado, assim a fila de envio é agilizada...
Testado em Debian 7.
Obs.: esse script utiliza o bash 4.2.37, não foi testado em versões anteriores...
Dúvidas: Skype - rfettuccia
#!/bin/bash ############################# # Gammu Ninja 1.3 # Developer: Roberto Fettuccia # script modem scanning # Date : 28/03/2014 # Tested to Bash 4.2.37 ############################# # Dependences : # * gammu 1.31.90 # ############################# set -x unset varDEVSvtr[@] unset varIMEIvtr[@] sucesso=0 varModemCont=0 X=0 rootDir=/etc/gammuninja rootTempDir=/tmp/gammuninja if [[ ! -f ${rootDir} ]]; then mkdir ${rootDir} printf "${rootDir} criado.\n" fi if [[ ! -f ${rootTempDir} ]]; then mkdir ${rootTempDir} printf "${rootTempDir} criado.\n" fi rm -f ${rootTempDir}/*.conf rm -f ${rootTempDir}/*.tmp rm -f ${rootDir}/*.conf detect0="$( ls /dev/tty* | grep '[<[t][t][y]]*[<[^UAS0]*[0-9SC]*[BM*]]*[0-9$]')" detect1="$( ls /dev/tty* | grep '[<[t][t][y]]*[S][0-9$]')" varDEVSvtr=(${detect0} ${detect1}) gammuD=' model = at connection = at synchronizetime = yes logfile = logformat = use_locking = gammuloc = ' DEVX="${varDEVSvtr[${X}]}" echo "Gerando padrao...." while [[ ! "${DEVX}" = "" ]]; do # gera todos os confs temporarios printf "[gammu]\n" > ${rootTempDir}/gammu$((X)).conf printf "port = ${DEVX}" >> ${rootTempDir}/gammu$((X)).conf printf "${gammuD}" >> ${rootTempDir}/gammu$((X)).conf X=$((X+1)) DEVX="${varDEVSvtr[${X}]}" done X=0 device='true' while [[ ${device} = 'true' ]]; do # testa todos confs, se gerou imei E modem, entao escreve o conf if [ -f ${rootTempDir}/gammu${X}.conf ]; then IMEI_cur="$(gammu -c ${rootTempDir}/gammu${X}.conf identify| grep IMEI | cut -d':' -f2 | sed 's/ //g')" if [[ ! "${IMEI_cur}" = "" ]] && [[ ! ${varIMEIvtr[@]} == *"${IMEI_cur}"* ]]; then mv ${rootTempDir}/gammu${X}.conf ${rootDir}/gammu${varModemCont}.conf varIMEIvtr[${X}]="${IMEI_cur}" printf "\n#IMEI:${IMEI_cur}" >> ${rootDir}/gammu${varModemCont}.conf varModemCont=$((varModemCont+1)) sucesso=1 fi else device='false' fi X=$((X+1)) done rm ${rootTempDir} -Rf
Script para configurar Vivo 3G sem pppconfig e wvdial
Catsort - Concatenar resultado filtrando e removendo repetidas
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
estou com chromebook legalzinho. (2)
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta