Teste de desempenho com números primos em C
Estendendo o assunto de teste de desempenho com números primos em BASH que publiquei antes http://www.vivaolinux.com.br/script/Teste-de-desempenho-com-numeros-primos-em-BASH tive um tempinho e codifiquei também em C. Desta vez não compilei no SO do servidor, mas em desktop Windows com GCC mesmo. No período de quase uma hora rodando num Celeron D com 1 GB de memória, obtive UM resultado: Primo 1410065413 Primo 1410065441 Primo 1410065443 O Desktop apresenta alguns momentos de "stall", travamento, mas bem de leve. Tipo ao digitar demora pra sair do buffer. Vou compilar no servidor e executar com `time` como fiz com o BASH. Testem o desempenho e divirtam-se!
Por: Andre Miguel
Teste de desempenho com números primos em BASH
Certo dia me deparei com um bottom brincalhão que dizia: "Digite qualquer número primo de 11 dígitos para continuar". Fiquei com vontade de saber se havia tal número. Então fiz um shellzinho para testar. Primeiros 10, beleza; primeiros 100, beleza, primeiros 1000, já não estava mais tão rápido. Percebi a oportunidade de utilizar este script como benchmark de desempenho entre servidores, sejam de mesmo hardware ou não. Quando você executar, pode demorar a aparecer alguma coisa na tela, mas ele está rodando. Pode verificar com strace ou truss (Solaris). Após você testar e tiver a coragem de descomentar a linha do 10000000000, me poste aqui os números primos que você achou! Dica: para temporizar a execução, utilize a linha abaixo: $ bash primo.sh 2>&1 |egrep 'Primo|real' |awk '{if ($2 ~ /s/){split($2,minsplit,"m");min+=minsplit[1];seg+=substr($2,3,5);}else{print min,seg; print $0; min=seg=0; }}' Você deverá ter uma saída como esta: 0 0.1 Primo: 11 0 0.248 Primo: 13 0 0.587 Primo: 17
Por: Andre Miguel
Execução remota com SSH e HERE DOCUMENTS descomplicada
Tive um problema para executar shell scripts desenvolvidos em BASH script em máquinas remotas, pois o usuário utilizado tinha como shell padrão o C Shell ou o Korn Shell. Para fazer isso, utilizei conexão SSH, via chave já configurada, evitando ter que recolocar a senha, e o recurso de HERE DOCUMENTS do BASH. Também lancei mão da funcionalidade de "||", que significa que se o comando anterior executado retornou erro, faça outra coisa. Nesse caso em específico, eu tinha uma série de servidores em que o mesmo arquivo Perl (mesmo conteúdo, mesma finalidade), tinha nomes ligeiramente diferentes e versões velhas e desatualizadas (muita gente pondo a mão, se é que você me entende...). Ex: $ runall.pl e $ runalls2.pl Veja abaixo que o recurso de "||" me serviu para saber qual dos dois Perl scripts eu deveria executar. O script abaixo foi desenvolvido em BASH para "adiantar o serviço" de administrador de sistemas. É claro que há maneiras diferentes de se fazer, mas vale a dica. Ele está do jeito exato que está no arquivo, com
dado no lugar mais apropriado para sua execução, apenas alterei nomes de programas e diretórios. Por: Andre Miguel
Execução temporizada de programas
Tive uma situação em que precisava rodar um programa similar ao strace do Linux num Solaris - o aplicativo truss - para coletar dados de execução de uma aplicação da empresa. A aplicação envolve dezenas de processos simultâneos e que geram milhares de informações por segundo, sendo controlados por três processos principais. Estes processos principais não geram tantas informações por segundo como os outros, então o truss ficaria rodando interminavelmente até que eu fizesse um SIGINT ou SIGKILL. Criei um script em BASH, mesclado com pequenos códigos AWK, para que a execução capturasse determinada quantidade de informações e terminasse, ou que terminasse após um determinado tempo, independentemente da quantidade de informações coletada. Usei o nawk porque o gawk não tenho disponível nos servidores SUN.
Por: Andre Miguel
Ordenação de Bytes por Swap Nibble
É um script simples para ordenação de bytes por Swap Nibble numa string. Esse procedimento é usado em muitas áreas, desde programação de Circuitos Integrados (com Assembler), a sistemas de Telecom.
Por: Andre Miguel
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[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