Gammu - Script para geração de configuração - codinome "gammuninja"
Publicado por Roberto Fettuccia (última atualização em 31/03/2014)
[ Hits: 5.883 ]
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 ligar/desligar o Conky no Fluxbox
xamore - um "more" simples em Xdialog
Script simples para adicionar usuarios do djbdns
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









