Gammu - Script para geração de configuração - codinome "gammuninja"
Publicado por Roberto Fettuccia (última atualização em 31/03/2014)
[ Hits: 5.759 ]
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 configuracao rapida da eth0
Convertendo vídeos flv para avi
Configuração de rede para o Fedora
trocar a senha de um usuario do sistema
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 (1)
Usar uma VM dentro do meu notebook como firewall para um dispositivo e... (1)