Sobre a metade de um ano após meu último anúncio na Dreambox monitoramento de meu sitestemata que posso anunciar novo e, provavelmente, uma das últimas versões de Nuki. A versão estava pronta antes 2 meses de preguiça, mas onde, onde as coisas são para depuração com anúncio de pozabaviha. De alguns dias a trabalhar 32 Dreambox 500-s e os resultados são muito bons. As mudanças são muito – removido é a idiotice de acordo com o Linux servidor para transferir os logs – Agora você precisa ter o apache + php, Porque o novo sistema para escrever os logs é apresentar parâmetros para um script php no servidor. Mudei o roteiro para trabalhar sem a parte de servidor – Se você tem alguns receptores de satélite não é significativo para você colocar um servidor de onde tirar a informação para que possa mover o script hardkodnato com 2 informações de variável para CAM-. Também declarei uma variável adicional para depurar – Se você não quiser que seus logs não jogando – novamente retardado a lacuna do que anteriormente 🙂 popraviki luz no código foram feitas, Parecia como escrito por polugramoten retard (Não que não esteja de). Ostrane nos 2 erros críticos, levando à rescisão do trabalho do script em algum momento aleatório, novo oligofrenski omissões de minha parte. Geralmente a escrita não era muito simplesmente tinha que considerar como as pessoas, que o busybox e cinzas não são coisas fáceis de domesticação. Desta vez acho que para salvar o grande discurso retórico com o código e explicar quais as variáveis para o que é e quais tratamentos podem ser feitas com ela (Novo) 🙂

SERVER="192.168.100.1"
 STANDALONE="FALSE" #using like stand alone app no server side depends ; )
 HCAM1="" ## if starting like stand alone app give me CAM namezzz if HCAM1 is empty its means chanel is free
 HCAM2="" ## CAM2 name
 PORT="666" # port rockzzz : D : )))))))))))))))))
 IP=$(ifconfig eth0 | grep inet | awk '{print $2}' | sed -e '[email protected]:@@')
 FILE='/tmp/debug'
 INFO='/tmp/info_file'
 NC=$(which nc)
 WGET=$(which wget)
 MAX_DAYS="10"
 TIMEOUT="600"
 MAX=70 #max cpu usage per process
DEBUGING="TRUE" #if u wanna script send debug information set DEBUGING to TRUE if SEVERLESS is set to true this var will be skiped
 NEWDBGSTYLE="TRUE" #debuging new style sending info to apache derectly, old style using nc

Então, obviamente, promenliviti nomes falam por si mas suficiente embora e quero dizer alguma palavra inteligente.

Autônomo é um dos mais importantes variável é TRUE se o setnata não vai fazer chamadas para o servidor e não vai exigir mais de acordo com o servidor, se você usá-lo você tem que colocar os seguintes valores e HCAM1 HCAM1 (Não sei por que chamei-lhe assim não me lembro agora, mas não importa). Se não tem nenhum valor real nele e é um skritpa de script autônomo assumindo que irá funcionar em canais não-criptografado e não há nenhuma verificação para módulo de descriptografia, Se lá vai testar de acordo com o valor real. HCAM2 HCAM2 opcional se você só usar o módulo decodificador 1 Digamos, por exemplo, processo CCcam.

depuração o segundo prlûe variável interessante ou informações que você vai manter em silêncio, de acordo com depende o que você valoriza são bateu. Avotmatično passa em um corte se Autônomo é TRUE

NEWDBGSTYLE NEWDBGSTYLE projecto uma variável importante. Ele irá transferir os logs no servidor. Se a verdadeira vontade é a nova forma sem idiostkata de acordo com o netcat. Se você ainda mantém o velho método de colocar FALSE. Em geral, estas são as coisas que eu preciso me concentrar, mas acho que, Embora as mudanças são radicais uma ideia continuará a ser transparente para a 🙂 de valores padrão especificado

Definitivamente estou muito satisfeito com o quanto você trabalha para fora – o script já se tornou suficientemente flexível otpdnaha idiotkite de acordo com arquivos adicionais de recursos, bem como otpdna e acho que de acordo com a nc ou a necessidade de um servidor, etc, nem todo mundo gosta de 30+ caixa-por que um servidor ou você pode ter um roteador um. Ainda tem muito a melhorar, mas por agora acho que me vou abster-se de coisas porque takvia não é necessário 🙂

Como arquivos geralmente estão localizados em Diretório Uma cripta para entrar nos logs pode ser baixada do aqui

E no caso de um bom script, uma peça acelerada para todos os aceleradores 😀

Reforçada por Zemanta

De quase um ano eu estava trabalhando no meu demočeto Nuki. Hoje eu tenho tempo para consertar as coisas, porque havia um monte de coisas que não eram muito bem. Eu adicionei um pouco de nova funcionalidade. Mudei o código, com mais recursos e em curto-circuito, tornou-se mais user friendly.

A principal característica que eu coloquei uma armadilha de sinal-. Em algum ponto como você girar o receptor dreambox de demônio decide matá-lo e assim parar de monitorar o meu processo, que em si é um momento desagradável. E não há nenhuma maneira de descobrir o que está acontecendo, porque o lugar é um pouco de sujeira e registros devem fazer fazer padrões complexos de compartilhamentos de rede que você não quer lidar. Em geral as linhas de sinal armadilha-é uma característica agradável de scripts bash para interceptar os sinais de saídas ou aqueles submetidos a eles pelo kernel através de um 😉 de matar, digamos, e, assim, podemos evitar alguns dos eventos imediatamente posteriores. Droga que SIGKIL ou matar -9 Não pode ser prehvanat e impedido, que é o núcleo de design. Ele finalizado diretamente enviado seu PID. E agora o código de erro

#trapping signals I know -9 dosent work but we try it just in case ; )
trap on_exit 0 14 1 2 9 13 15 6 8 4 3 11 5
on_exit () {
make_debug 10 #unexpected error
#reboot now if we hawe trapped signal
reboot -d 0
exit 0
}

A primeira linha declara os EUA quanto a ação a ser tomada e em quais alertas lerá mais sobre alertas sinais de homem no caso desses 😉 me conta. Como você pode ver o resultado em um simples funkciika que faz a depuração de aplicativos de mensagens e reiniciar o receptor. Não estou convencido, Isso levará ao resultado que eu esperava, Porque eu acho que tudo o que dificulta é matar com kill -9 Mas nada impede de tentar.

Outras mudanças são as características cardinais a maioria das coisas que se repetem pelo código preenchê-las em funções, Foi um pouco sem graça não, Agora que é bom, eu tinha um drama de 😉 com um retorno em Brito- – Eu coloquei no meu retorno em uma função e esperava uma atitude como todas as outras linguagens de programação familiares, Mas descobriu-se que valores de inteiro só retorno e retorna-lo para um máximo de 2 😀 e eu queria retornar a sequência de caracteres. Havia um porco feio. A solução é simples

#---cuted---

if [ $T -eq $N ]
 then
 echo "Cam is down! Reboot..."
make_debug 4 # cam is down
 else
echo $rcam
 fi

# ---cuted----

#finding real cam1
 rcam1=$(find_cam $cam1)

A primeira parte é o fim da minha função e através do eco eu cuspir o resultado. Tomá-lo é elementar com a última linha na passagem superior.

Hmmm eu acho, Essa é a parte interessante do código.

Quero expressar minha gratidão para com o 😉 de inspiração

http://www.youtube.com/watch?v = SilMJ0O13UI&recurso = relacionados

mais- Eu finalmente consegui terminar o trabalho no roteiro eu escrevo tanto tempo já 🙂 Nuki é um roteiro bastante estável. enfatizar 1 porque a remoção do script extra como ele construído na principal. Ela ganhou uma estrutura monolítica, mas pessoalmente eu acho que é melhor para uma versão demônio 🙂 melhorias já não são muito, sim são correções de alguns pequenos erros e tentativas de melhorar o código. A única coisa tangível eu adicionei um check-uptime e receptor. Configurá-lo cada 10 dias para se fazer restart.

Olhando para trás, a minha ideia inicial para um script que simplesmente monitorar receptores que sluchava-los pensar, que eu percebi feliz idéia melhor muitas vezes. O único erro que eu espero para evitar uma 10 reinicialização é diária – há momentos em que o receptor começa a reiniciar, mas falha. Matando a maioria das oficinas, incluindo rede, mas neuspyava alcance restart. Infelizmente, devido a limitações impostas pelos meus caixas nemozhyah de fazer é reiniciar o núcleo e, portanto, para evitar este momento. Talvez algum dia no futuro irá compilar a minha imagem para as suas caixas e, portanto, capaz de lidar com este problema. Por agora nadyavma durar a minha decisão de encobrir 🙂 contrário qualquer outra coisa extremamente bem recebido, mesmo muito melhor do que a minha idéia original. especialmente desde, Renomeá-lo em tais metamorfoses. Maior parte de buggy ficou interfeisa web, portanto, continuar a não dar 😆 uma vez sentou-se para reescrever estes dias irá levá-lo para o consumo livre. palavras finais – em vez de procrastinar apenas quero agradecer a todos os meus amigos, que suportou minhas perguntas estúpidas sobre isso e aquilo – têm importantes contribuições para deizaina código. Merece apreço e homem que é chamado de meu projeto e serviu de inspiração a muitos momentos de escrita talento 🙂 … Dame merece isso!

Hoje eu trabalhei um pouco acima da nova versio NUKI. Finalmente trouxe ordem e, E eu gostaria de consertá-lo um pouco antes de liberar o último estábulo, e provavelmente última versão. Então tive a ideia para verificar quantos dias é o tempo de atividade do host, Isso mais me faz problemas depois de ser mais tempo, Então eu decidi fazer 10 dias um reinício de prfilaktičen. Apressadamente, levantou-me para limpar meus dias konveirče das restantes variáveis porque o resultado é bastante desagradável uptime otkomandata para trabalhar

# uptime
12:13:57 up 30 days, 20:07,  1 user,  load average: 0.00, 0.00, 0.00

Assim, a ordem em questão é filtrada apenas pelo Supers Convesir 😛

uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'

Como se o tempo de trabalho é um resultado de dias é um número inteiro com os dias, (a) Se for em hora rezulatatt é semelhante ao

[email protected]:~$ uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'
1:34,  5 users,  load average: 0.46, 0.39, 0.41
[email protected]:~$

É por isso que ele passa por um cheque para o tipo de valor

if echo $days | grep "^[0-9]*$" > /tmp/null
then
   echo "Uptime in days is $days"
else
  echo "Uptime isnt in days"
fi

Simplesmente fácil e direto no IF e a construção verifica que a nota contém apenas dígitos com um grep de expressão regular “^[0-9]*$”.

Bem, que isso aconteceu tem Nuki 1.0 🙂 por isso que da versão 0.6 Eu pulei do 1.0 Você me perguntará bem simples – Já temos um 100% Universal, cobrindo todos os requisitos NUKI, com algumas exceções, como se fiksna no futuro e, mais importante, esta versão são realizados de forma radicalmente diferente. Voltei para minha velha ideia de um demônio e um pouco de tentativa e erro coisas este tempo trabalhou para fora muito grande. O aplicativo de servidor é totalmente estripado, além de um script php curto do qual ele desenha sua informações-NUKI 🙂

É já alcançado quase tudo com o NUKI, onde mais? Para ser honesto co. sempre pode e muito mais, Considere, por exemplo, para fazer o script instalador para dizer para tornar as coisas um pouco mais fácil e compreensível, mesmo para o usuário de Linux que nem tudo acontece como possível- alguns problemas para o usuário. Mas para tudo há uma temporada. No momento o NUKI, além do mais eu dobavail módulo que monitora a conexão para o servidor, Se você desaparecer o receptor reinicia. No momento que eu ainda não determinou se as obras hihihiihh 😆 Abe como um todo sempre terá muito a desejar ainda ou uma ideia fresca de alguns no entanto um capítulo não pensa como o 2-3-4 ou mais, Nem meu 😈

PS lançamento novo codinome. Acho que já tenho uma base muito sólida para todos que decidir no futuro fazer com o meu script