Gammu - Script para geração de configuração - codinome "gammuninja"
Publicado por Roberto Fettuccia (última atualização em 31/03/2014)
[ Hits: 5.966 ]
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
Checagem de ping com link down e link up
Somatório de valores do comando ps
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









