Menu Principal

segunda-feira, 31 de outubro de 2011

Sony Vegas

Há algumas extensões que o Sony Vegas não lê, para isso instale o Instale o K-lite Mega Codec Pack 294 (64bits. O de 64 bits é para o vegas 64 e o de 32 para o vegas 32 bits.
 Download
http://pt.kioskea.net/?ID=2817&module=download#q=K-Lite+Codec+Pack+64-bit&cur=1&url=/

Não endureçais o vosso coração!

Hebreus 3.7-11
 

Nosso coração e nossas vontades são diferentes das de Deus. O morrer para si e viver para Cristo é abdicar de nossa vontade natural e optar pela vontade espiritual de Deus. Quantas circunstâncias e situações passamos diariamente e muitas são as que nos desagradam e nos causam desconforto. Desde cedo, em nossas vidas, praticamos coisas que não nos dão prazer: acordar cedo para ir a escola ou trabalho, cumprir horário, evitar ingerir alimentos que não prejudiquem nossa saúde, pedir perdão, liberar perdão, etc.
Em cada um destes desconfortos praticados geram em nós a percepção de que é impossível fazer a nossa perfeita vontade. O problema é que somos teimosos e sempre quando nos deparamos com alguma situação desfavorável acabamos por insistir em impor nosso querer e isso causa mais dor e mais situações desfavoráveis. Essa resistência é a verdadeira causa do sofrimento e não o problema em si. Porém, há uma observação a ser feita: Devemos RESISTIR a vontade do mundo e ao desejo pessoal que nos conduz para o mundo. Nisto também devemos SER SUBMISSOS a vontade de Deus nos abrindo para a sua vontade perfeita e alimentar nossos desejos que concordem com sua palavra.
Nesta passagem de referência vê-se que o exemplo dado foi o do povo de Israel no deserto, logo após a saída do Egito. Neste deserto Deus agiu de várias formas e eles endureceram seus corações para o querer de Deus, resistiram-no em quase todo o tempo. Deus proveu e os supriu em tudo, porém eles preferiram o querer humano do que a vontade de Deus. Preferiram fazer o que lhes parecia bom aos olhos, ao invés de obedecer o que a palavra de Deus os estava dizendo. Qual foi o resultado? sofrimento, dores, decepções, etc. O pior de tudo é ver que não reconheceram a insensatez daquelas escolhas e atos errados.
Não há como andar em Fé sem praticá-la de TODO o coração. Há muitos que profeçam a Fé Cristã, mas não creem de coração no que dizem crer. Basta uma situação que afronte sua vontade carnal e humana para abandonarem seu compromisso com Cristo. Ir a igreja, orar, jejuar, falar de Deus NÃO IMPLICA em obediência, implica sim e desencargo de consciência, implica em uma atividade politicamente correta diante das demais pessoas que convivem conosco na igreja. Somente quando estamos sendo provados, quando todos te abandonam, e apesar disso você se mantém firme em Cristo podemos saber onde está nosso coração.
Deus quer o nosso coração completamente, não basta agirmos corretamente, não basta desejarmos fazer o certo, não basta falarmos o correto, NÃO BASTA termos boas intenções, É PRECISO MORRER PARA A VONTADE PRÓPRIA. Não temos outra opção, pois chegará o dia em que nos depararemos em situações que nos imporão covardemente a fazer o que não desejamos. A perda de um ente querido, uma doênça incurável, a falência, uma tragédia, etc.
A vida é dura demais para os que a acham fácil, mas superável para os que a encaram como um grande desafio.
Tenha uma semana abençoada em Cristo!

quinta-feira, 27 de outubro de 2011

PAM

PAM é a parte principal da autenticação em um sistema Linux. PAM significa Pluggable Authentication Modules, ou Módulos de Autenticação Plugáveis/Modulares.
Originalmente a autenticação no Linux era apenas via senhas criptografadas armazenadas em um arquivo local chamado /etc/passwd. Um programa como o login pedia o nome do usuário e a senha, criptografava a senha e comparava o resultado com o armazenado naquele arquivo. Se fossem iguais, garantia o acesso à máquina. Caso contrário, retornava erro de autenticação. Isto até funciona muito bem para o programa login, mas, digamos que agora eu queira usar isso também para autenticação remota. Ou seja, a base de usuários não está mais na mesma máquina, mas sim em alguma outra máquina da rede, o chamado servidor de autenticação. Teremos que mudar o programa login para que ele também suporte esse tipo de autenticação remota.
Surgiu um novo algoritmo de criptografia, muito mais avançado, mais rápido, criptografa melhor, etc. Queremos usar esse novo algoritmo. Claro que teremos que mudar novamente o programa login para que ele suporte este novo algoritmo também. No Linux, muitos programas utilizam algum tipo de autenticação de usuários. Imagine se todos eles tivessem que ser reescritos cada vez que se mudasse algum dos critérios de autenticação.
Para resolver este tipo de problema, a Sun® criou o PAM há alguns anos e liberou as especificações em forma de RFC. O Linux derivou sua implementação do PAM a partir deste documento. Com PAM, o aplicativo login deste exemplo teria que ser reescrito apenas uma vez, justamente para suportar PAM. A partir de então, o aplicativo delega a responsabilidade da autenticação para o PAM e não se envolve mais com isso.
Voltando ao exemplo anterior, no caso de se querer utilizar um outro algoritmo de criptografia para as senhas, basta que o módulo PAM seja modificado para que todos os aplicativos automaticamente e de forma transparente passem a usufruir desta nova forma de autenticação. PAM possui uma outra vantagem: é possível configurar a autenticação de forma individual para cada aplicativo. Com isto é possível fazer com que, por exemplo, um usuário comum possa usar os dispositivos de áudio do computador desde que tenha se logado na máquina através do console. Se o login não tiver sido feito no console (por exemplo, é um login remoto via ssh), este tipo de acesso ao hardware será negado. Será que os programas login ou ssh sabem alguma coisa sobre o dispositivo de áudio da máquina? É claro que não. Eles não precisam. Os módulos PAM se encarregam disso.
Na verdade, PAM vai um pouco além da autenticação. Os módulos podem ser divididos em quatro tipos:

auth:
É a parte que verifica que o usuário é realmente quem ele diz que é. Pode ser bem simples, pedindo apenas por um nome e uma senha, ou utilizando autenticação biométrica, por exemplo (como uma impressão de voz, uma imagem da retina ou impressão digital).
account:
Esta parte verifica se o usuário em questão está autorizado a utilizar este serviço ao qual ele está se autenticando. Os módulos aqui podem checar por horário, dia da semana, origem do login, login simultâneo, etc.
passwd:
Este serviço é usado quando se deseja mudar a senha. Por exemplo, aqui podem ser colocados módulos que verificam se a senha é forte ou fraca.
session:
Por fim, a parte session fica encarregada de fazer o que for necessário para criar o ambiente do usuário. Por exemplo, fornecer o acesso a alguns dispositivos locais como o de áudio ou cdrom, montar sistemas de arquivos ou simplesmente fazer o registro do evento nos arquivos de log do sistema.
Um módulo PAM pode ou não conter todas estas funções. O módulo pam_pwdb, por exemplo, pode ser usado nestes quatro tipos e possui ações diferentes em cada uma das situações, enquanto que pam_console é normalmente usado apenas como session.


segunda-feira, 24 de outubro de 2011

A história de Zac Smith

O SIGNIFICADO DE PENIEL - extraído de : http://marcelofuzaro.multiply.com/journal/item/224/224

 
O SIGNIFICADO DE PENIEL

Alguns podem perguntar: “Qual é o significado de Peniel? Como pode o Peniel de Jacó ser aplicado a nós?” Podemos responder assim: Você pode ter uma disposição obstinada, que tem dominado a sua vida. Essa disposição tem-se tornado o princípio de sua vida e o terreno para o alojamento de sua vida natural. Em momentos normais, você não percebe isso. Mas Deus arranja muitas oportunidades nas quais essa força natural é exposta uma, duas, dez vezes, ou mesmo cem vezes. Contudo, você ainda está despercebido dela. Um dia, ao cruzar Jaboque, você terá esgotado sua habilidade e o verdadeiro apoio de sua vida natural será exposto. Nessa hora, a mão de Deus tocará em você e lhe mostrará onde sua força natural reside. Você perceberá sua mais feia, maligna e vergonhosa disposição. Aquilo que você se orgulhava, aquilo em que se gloriava e de onde tirava satisfação, e o que considerava excelente e superior está agora sob o iluminar da luz de Deus e descobre-se que nada mais é do que a vida carnal, a qual é vergonhosa, corrupta e desprezível. A luz matou você. Este é o significado de Peniel. Deus mostra-lhe que as coisas das quais se orgulhava, considerava admiráveis, e que o distinguia dos outros são a própria expressão da vida carnal. Quando Deus toca a sua vida deste modo, você fica fraco. Este é o significado de Peniel.
A sua força natural precisa ser tratada pelo Senhor. Mas antes de ver a luz, você considera esta força algo precioso e digno de ostentação. Irmãos e irmãs, vocês devem ter cuidado com sua ostentação. A força da vida natural está escondida na ostentação de muitos cristãos. É difícil encontrar um cristão que não tenha sua vida natural oculta atrás do seu orgulho. Portanto, você deve ser particularmente cuidadoso com o seu orgulho. As coisas das quais você se orgulha são frequentemente as coisas com as quais Deus tratará. Talvez justamente essas coisas sejam a articulação da sua coxa. Deus brilhará sobre você e tocará a articulação da sua coxa. Quando Ele tocar neste ponto, você ficará muito envergonhado e dirá: “Todos os que conhecem um pouco sobre experiência de Peniel, podem testificar que, quando Deus toca a articulação da coxa, eles ficam não somente fracos, mas envergonhados. Eles exclamam: “Como pude ser tão tolo? Eu achava que isto e aquilo era bom. Na verdade, eram coisas vergonhosas!” Eles sentem que são as pessoas mais horríveis diante do Senhor. Irmãos e irmãs, uma vez que Deus toque em você, você verá que tudo o que fez antes foi horrível. Você ficará admirado de como pôde ter considerado aquilo como sua glória e suas virtudes, e como pôde  ter considerado, os outros inferiores a você! Quando isto acontece, Deus tocou em você.
O nome Peniel significa “a face de Deus” na língua original. A face de Deus é a luz de Deus. No passado, Deus tocou a articulação da coxa de Jacó com Sua mão. Hoje Ele está tocando na nossa vida natural com Sua luz. Uma vez que formos iluminados pela luz de Deus, nós perceberemos que as coisas que considerávamos boas, gloriosas e excelentes são coisas vergonhosas e tolas. Essa luz nos dará um golpe mortal e tirará toda nossa força.
Irmãos e irmãs, um dia teremos de passar por Peniel. Deus precisa tocar na nossa vida natural para que possamos tornar-nos pessoas úteis em Suas mãos. Chegará o dia em que passaremos por tal experiência. Certamente, não podemos encomendar-nos ao fiel Criador e orar para que Ele trabalhe coisas em nosso ambiente e nos conduza à percepção de que nosso orgulho é apenas nossa vergonha e tolice. Que o Senhor seja misericordioso para conosco e nos dê luz, para que Sua obra seja realizada em nós através do iluminar de Peniel – a face de Deus.

(O DEUS DE ABRAÃO, ISAQUE E JACÓ – W.N.)

sexta-feira, 21 de outubro de 2011

Rota estática no RedHat

No diretório  /etc/sysconfig/network-scripts/ são armazenados o script que criarão as rotas para o servidor.
O arquivo terá o nome route-eth0 ou route-eth1
Exemplo de um route-eth0
GATEWAY1=10.x.x.x
NETMASK1=255.255.0.0
ADDRESS1=10.x.x.x

GATEWAY0=10.x.x.x
NETMASK0=255.255.255.192
ADDRESS0=10.x.x.x


O arquivo route-eth? substitui o comando route-add. Quando se usa o comando a rota é perdida ao se reiniciar o sistema operacional, por isso usa-se o script route-eth?
A rota pode ser para um HOST específico ou para uma REDE.

terça-feira, 18 de outubro de 2011

Comandos chattr e lsattr

Os comandos chattr e lsattr servem para incrementar segurança no arquivo ou diretório, o comando chattr usa atributos e não permissão como o chmod, esses atributos são extensões que proíbem que o arquivo seja alterado, removido e renomeado, esses atributos pode ser atribuídos para o dono do arquivo e até mesmo para o root. Abaixo será explicado a função de cada comando.
Opções:
  • -R - modifica atributos em subdiretórios.
  • -V - Mostra detalhes sobre a modificação do atributo atributo:
    atributos de arquivo / diretório
    + adiciona atributo
    - remove atributo
    = define o atributo igual especificado
Exibe o atributo de imutabilidade do diretório
# lsattr -d diretório

Inclui o atributo de imutabilidade no diretóriio
# chattr +i diretório

Tira o atributo de imutabilidade  no diretório
# chattr -i diretório

Comando zdump

Este comando mostra a configuração do localtime da sua máquina  




zdump -v /etc/localtime | grep 201[01]


Resultado do comando:
/etc/localtime  Sun Oct 17 02:59:59 2010 UTC = Sat Oct 16 23:59:59 2010 BRT isdst=0 gmtoff=-10800
/etc/localtime  Sun Oct 17 03:00:00 2010 UTC = Sun Oct 17 01:00:00 2010 BRST isdst=1 gmtoff=-7200
/etc/localtime  Sun Feb 20 01:59:59 2011 UTC = Sat Feb 19 23:59:59 2011 BRST isdst=1 gmtoff=-7200
/etc/localtime  Sun Feb 20 02:00:00 2011 UTC = Sat Feb 19 23:00:00 2011 BRT isdst=0 gmtoff=-10800

ZIC - Compilador de Horário de Zona (Fuso Horário)

FONTE:
http://www.clevitonmendes.blogspot.com/2009/04/zic-compilador-de-horario-de-zona-fuso.html



Precisei gerar o arquivo localtime conforme instruções do bom tutorial do site da rede nacional de pesquisa (RNP) em http://www.rnp.br/cais/alertas/2008/cais-alr-20081003.html, que atendeu a minha necessidade. Contudo, achei necessário ler a página manual do comando ZIC que só encontrei em inglês. O resultado foi então essa versão em português.

Correções são muito bem-vindas!




ZIC(8)                                                                       ZIC(8)


NOME
zic - time zone compiler – compilador de horário de zona (de fuso horário).


SINOPSIS
zic  [ -v ] [ -d directory ] [ -l localtime ] [ -p posixrules ] [ -L
leapsecondfilename ] [ -s ] [ -y command ] [ filename ... ]



DESCRIÇÃO
O programa zic lê o texto do(s) arquivo(s) denominado na linha de comando e cria arquivos de informação para a conversão de tempo especificado nessa entrada. Se um filename for substituído por‘-‘, então a entrada padrão é lida.

Essas opções estão disponíveis:

-d directory

Cria os arquivos de informação de conversão de tempo no diretório denominado em vez do diretório padrão denominado abaixo.

-l timezone

Usa o timezone (fuso horário) dado como tempo local. O comando zic vai agir como se a entrada contivesse uma linha link da forma:

Link      timezone      localtime


-p timezone

Usa as regras de timezones (fusos horários) quando manipulando variáveis de ambiente timezone no formato POSIX. O comando zic agirá como se a entrada contivesse uma linha link da forma:

Link     timezone     posixrules


-L leapsecondfilename

Lê a informação do Segundo de salto do arquivo com o nome dado. Se essa opção não for usada, nenhuma informação do segundo de salto aparecerá nos arquivos de saída.


-v Reclama se um year (ano) que aparece em um arquivo de dados está fora da faixa de anos representáveis por valores de time(2).

-s Limita valores de tempo armazenados nos arquivos de saída para valores que são os mesmos se eles forem tomados ser sinalizados ou não. Você pode usar essa opção para gerar arquivos compatíveis SVVS.

-y command

Usa o comando dado em vez de yearistype quando verificando tipo ano (veja a seguir).

As linhas de entrada são compostas de campos. Os campos são separados entre si por qualquer número de caracteres espaços em branco. Espaço em branco na cabeça e no rabo nas linhas de entrada é ignorado. Um caractere cerquilho (#) não entre aspa dupla na entrada introduz um comentário que expande até o final da linha que aparece o caractere cequilho. Caracteres espaço em branco e cerquilho (#) podem ser fechados entre aspas duplas (“”), se eles forem usados como parte de um campo. Qualquer linha que esteja em branco (após suprimir comentário) será ignorada. Linhas não em branco são esperadas ser uma de três tipos: linha de regras, linhas de zona e linhas de link.


Uma linha de regra (rule) tem a forma:

Rule   NAME    FROM   TO   TYPE   IN   ON   AT   SAVE  LETTER/S


Por exemplo:

Rule    US    1967 1973   -     Apr lastSun 2:00 1:00 D


Os campos que compõe uma linha de regra são:


NAME
Fornece o nome (arbitrário) do conjunto de regras da qual essa regra é parte.


FROM
Fornece o primeiro ano no qual a regra se aplica. Qualquer inteiro pode ser fornecido; o calendário Gregoriano é assumido. A palavra minimum (ou uma abreviação) significa que o ano mínimo que pode ser representado como um inteiro. A palavra maximum (ou uma abreviação) significa o ano máximo que pode ser representado como inteiro. As Regras podem descrever tempos que não são representáveis como valores de tempo, os tempos que não puderem ser representados serão ignorados; isso permite que as regras sejam portáveis entre hosts com tipos de valor de tempo diferentes.


TO
Fornece o ano final no qual a regra se aplica. Em adição as palavras minimum e maximum (como explicado acima), a palavra only (ou uma abreviação) pode ser usada para repetir o valor do campo FROM.


TYPE
Fornece o tipo de ano no qual a regra se aplica. Se TYPE for ‘-‘, então a regra se aplica em todos os anos entre FROM e TO inclusive. Se TYPE for algo diferente, então zic executa o comando yearistype tipo de ano para verificar o tipo de ano: um status de saída igual a zero é tomado para significar que o ano é do tipo dado; um status de saída 1 é tomado para significar que o ano não é do tipo fornecido.


IN
Nomeia o mês no qual a regra tem efeito. Nomes dos meses podem ser abreviados.


ON
Fornece o dia no qual a regra tomará efeito. Formas reconhecidas incluem:



5No quinto dia do mês.
lastSunNo último Domingo do mês.
lastMonNa última Segunda do mês.
Sun>=1No primeiro Domingo logo após ou igual ao dia primeiro do mês, ou seja, no primeiro Domingo do mês.
Sun>=8No primeiro Domingo logo após o dia 8 ou igual ao oitavo dia do mês, ou seja, no segundo domingo do mês.
Sun>=15No primeiro Domingo logo após o dia 15 ou igual ao décimo quinto dia do mês, ou seja, no terceiro domingo do mês.
Sun>=22No primeiro Domingo logo após o dia 22 ou igual ao vigésimo segundo dia do mês, ou seja, no quarto domingo do mês.
Sun<=25No último Domingo antes do dia 25 ou no domingo igual ao vigésimo quinto dia do mês.




Nomes de dias da semana podem ser abreviados ou colocados completos. Observe que não pode haver nenhum espaço dentro do campo ON.

AT
Fornece a hora do dia na qual a regra toma efeito. Formas reconhecidas incluem:



2Tempo em horas.
2:00Tempo em horas e minutos.
15:00Tempo no formato 24-horas (para horário vespertino).
1:28:14Tempo em horas, minutos, e segundos.



Onde 0 hora é meia noite no começo do dia, e 24 horas é meia noite no final do dia. Qualquer dessas formas pode ser seguida pela letra w se a hora dada for à hora local “wall clock”, s se a hora dada for à hora local “Standard”, ou u (ou g ou z) se a hora dada for à hora do tempo universal; na ausência de um indicador, a hora do relógio local será assumido.

SAVE
Fornece a quantidade de tempo a ser adicionada à hora local padrão quando a regra tomar efeito. Esse campo tem o mesmo formato que o campo AT (embora, claro, os sufixos w e s não sejam usados).


LETTER/S
Fornece a "parte variável" (por exemplo, o "S" ou "D" em "EST" ou "EDT") das abreviações de timezone (fuso horário) a ser usado quando essa regra tomar efeito. Se esse campo for ‘-‘, a parte variável é nula.



Uma linha de zona (zone line) possui a forma:

Zone  NAME   GMTOFF   RULES/SAVE   FORMAT  [UNTIL]


Por exemplo:

Zone Australia/Adelaide 9:30  Aus  CST  1971 Oct 31 2:00



Os campos que compõem uma linha de zona são:

NAME
O nome do timezone (fuso horário). Esse é o nome usado na criação do arquivo de informação de conversão de tempo para o fuso horário.


GMTOFF
A quantidade de tempo a adicionar ao horário UTC para obter a hora padrão nessa zona (fuso). Esse campo possui o mesmo formato que o dos campos AT e SAVE das linhas de regra; inicie o campo com um sinal menos se a hora precisa ser subtraída do horário UTC.


RULES/SAVE
O nome da(s) regra(s) que se aplica no timezone (fuso horário) ou, alternativamente, uma quantidade de tempo a adicionar ao horário local padrão. Se esse campo for ‘-‘, então o horário padrão sempre se aplica nesse timezone (fuso horário).


FORMAT
O formato para abreviação de timezone (fuso horário) nesse fuso. O par de caracteres ‘%s’ é usado para mostrar onde entra a “parte variável” da abreviação do fuso horário. Alternativamente, uma barra (/) separa abreviações do horário padrão e do horário daylight.


UNTIL
O horário no qual o offset UTC ou a(s) regra(s) mudam para uma localização. É especificado como um ano, um mês, um dia, e uma hora do dia. Se isso for especificado, a informação de timezone (fuso horário) é gerada do offset UTC dado e a regra alterada até o tempo especificado. O mês, dia, e hora do dia possui o mesmo formato que o formato das colunas IN, ON, e AT de uma regra; colunas finais podem ser omitidas, e é padronizado com o valor mais antigo possível das colunas faltantes.


A linha seguinte precisa ser uma linha “continuação”; essa tem a mesma forma que de uma linha de zona exceto que a string “Zone” e o nome sejam omitidos, porque a linha continuação colocará a informação no início do tempo especificado como o campo UNTIL na linha anterior no arquivo usado pela linha anterior. Linhas de continuação podem conter um campo UNTIL, justamente como faz as linhas de zona, indica que a próxima linha é uma continuação adicional.


Uma linha link possui a forma:

Link LINK-FROM   LINK-TO


Por exemplo:

Link Europe/Istanbul Asia/Istanbul


O campo LINK-FROM deve parecer igual ao campo NAME em toda linha de zona; o campo LINK-TO é usado como um nome alternativo para essa zona (fuso horário).

Exceto para linha de continuação, as linhas podem aparecer em qualquer ordem na entrada.


Linhas no arquivo que descrevem os segundos de salto têm a seguinte forma:

Leap    YEAR    MONTH     DAY    HH:MM:SS    CORR    R/S


Por exemplo:

Leap 1974 Dec    31   23:59:60 +     S


Os campos YEAR, MONTH, DAY, e ‘HH:MM:SS’ informa quando o segundo de salto aconteceu. O campo CORR deve ser “+”, se um Segundo foi adicionado ou “-“ se um segundo foi saltado. O campo R/S deve ser (uma abreviação para) “Stationary", se o tempo do segundo de salto dado pelo outros campos deve ser interpretado como UTC ou (uma abreviação para) “Rolling”, se o tempo do segundo de salto dado pelos outros campos deve ser interpretado como hora local.


OBSERVAÇÃO:
Para as áreas com mais de dois tipos de horário local, você pode precisar usar a hora local padrão no campo AT da regra de tempos de transição anterior para assegurar que o tempo de transição anterior gravado no arquivo compilado esteja correto.


ARQUIVO
/usr/share/zoneinfo – diretório padrão usado pelos arquivos.











segunda-feira, 17 de outubro de 2011


Nesta segunda-feira, dia 17, é comemorado o Dia Nacional da Vacinação para lembrar que não são apenas as crianças que devem estar com a carterinha em dia. Ninguém reluta em levar o filho para tomar uma vacina contra sarampo ou paralisia infantil, mas na hora de cuidar da própria saúde, muitos adultos negligenciam as campanhas de vacinação. Não é apenas o organismo da criança que está sujeito a doenças que o corpo não está preparado para combater.

Em todas as fases de nossa vida, estamos suscetíveis a infecções por vírus e bactérias que, se não tratadas, podem causar muitos problemas. "Faz parte da cultura dos brasileiros achar que vacinação é assunto de criança. Mesmo que esse quadro esteja mudando, os adultos ainda não tratam as vacinas com seriedade", diz o infectologista Paulo Olzon, da Unifesp. 
Vacinação adultos- Foto Getty Images
As doenças crônicas que se manifestam mais na vida adulta são fortes indicadores de que o individuo precisa se vacinar. "As pessoas que estão em grupos de risco, como as pessoas com mais de 60 anos ou aquelas que têm doenças crônicas, devem sempre estar informadas sobre a vacinação", explica o especialista.

Existem vacinas tanto para bactérias como para vírus. "No primeiro caso, a vacinação é feita para controlar surtos epidemiológicos. Já no caso dos vírus, a imunização normalmente dura a vida toda, sendo necessárias apenas algumas doses de reforço para garantir que a doença não vai mais voltar", diz Paulo Olzon. 
Vacina dupla tipo adulto - para difteria e tétano
A difteria é causada por uma bactéria, que é contraída pelo contato com secreções de pessoas infectadas. Ela afeta o sistema respiratório, causa febres e dores de cabeça, em casos graves, pode evoluir para uma inflamação no coração.

A toxina da bactéria causadora do tétano compromete os músculos e leva a espasmos involuntários. A musculatura respiratória é uma das mais comprometidas pelo tétano. Se a doença não for tratada precocemente, pode haver uma parada respiratória devido ao comprometimento do diafragma, músculo responsável por boa parte da respiração, levando a morte. Ferir o pé com prego enferrujado que está no chão é uma das formas mais conhecidas do contágio do tétano.

A primeira parte da vacinação contra difteria e tétano é feita em três doses, com intervalo de dois meses. Geralmente, essas três doses são tomadas na infância. Então confira a sua carteira de vacinação para certificar-se se a vacinação está em ordem. Depois delas, o reforço deve ser feito a cada dez anos para que a imunização continue eficaz. É nesse momento que os adultos cometem um erro, deixando a vacina de lado.  
Vacina Tríplice-viral ? para sarampo, caxumba e rubéola
Causado por um vírus, o sarampo é caracterizado por manchas vermelhas no corpo. A transmissão ocorre por via respiratória. De acordo com dados do Ministério da Saúde, a mortalidade entre crianças saudáveis é mínima, ficando abaixo de 0,2% dos casos. Nos adultos, essa doença é pouco observada, mas como a forma de contágio é simples, os adultos devem ser imunizados para proteger as crianças com quem convivem.

Conhecida por deixar o pescoço inchado, a caxumba também tem transmissão por via respiratória. Mesmo que seja mais comum em crianças, a caxumba apresenta casos mais graves em adultos, podendo causar meningite, encefalite, surdez, inflamação nos testículos ou dos ovários, e mais raramente no pâncreas.  
"Faz parte da cultura dos brasileiros achar que vacinação é assunto de criança. Mesmo que esse quadro esteja mudando, os adultos ainda não tratam as vacinas com seriedade"
Já a rubéola é caracterizada pelo aumento dos gânglios do pescoço e por manchas avermelhadas na pele, é mais perigosa para gestantes. O vírus pode levar à síndrome da rubéola congênita, que prejudica a formação do bebê nos três primeiros meses de gravidez. A síndrome causa surdez, má-formação cardíaca, catarata e atraso no desenvolvimento.

O adulto deve tomar a tríplice-viral se ainda não tiver recebido as duas doses recomendadas para a imunização completa quando era criança e se tiver nascido depois de 1960. O Ministério da Saúde considera que as pessoas que nasceram antes dessa data já tiveram essas doenças e estão imunizados, ou já foram vacinados anteriormente.

Mesmo que todos com essas características devam ser vacinados, as mulheres que pretendem ter filhos, que não foram imunizadas ou nunca tiveram rubéola devem tomar a vacina um mês antes de engravidar, já que a rubéola é bastante perigosa quando acomete gestantes, podendo causar deformidade no feto.  
Vacina contra a hepatite B
A Hepatite B é transmitida pelo sangue, e em geral não apresenta sintomas. Alguns pacientes se curam naturalmente sem mesmo perceber que tem a doença. Em outros, a doença pode se tornar crônica, levando a lesões do fígado que podem evoluir para a cirrose. "A imunização contra essa doença é importante, pois ela pode causar problemas sérios, como câncer no fígado", diz Paulo Olzon.

De acordo com o especialista, há algumas décadas, o tipo B da hepatite era o mais encontrado, já que ela pode ser transmitida através da relação sexual e as pessoas não tomavam cuidado com a prevenção de doenças sexualmente transmissíveis. Depois de uma campanha de vacinação e imunização, e da classificação da hepatite C pelos médicos, ela não pode ser vista como epidemia, mas ainda é preciso tomar cuidado com essa doença. 
Até os 19 anos, todas as pessoas podem tomar a vacina contra hepatite B, gratuitamente, em qualquer posto de saúde. A aplicação da vacina também continua de graça, quando o adulto faz parte de um grupo de risco. "Pessoas que tenham contato com sangue, como profissionais de saúde, podólogos, manicures, tatuadores e bombeiros, ou que tenham relacionamentos íntimos com portador da doença são as mais expostas a essa doença", diz o especialista. Fora isso, qualquer adulto pode encontrar a vacina em clínicas particulares. 
Idoso gripado - Foto Getty Images
Pneumo 23 - Pneumonia
O pneumococo, bactéria que pode causar a pneumonia, entre outras doenças, pode atacar pessoas de todas as idades, principalmente indivíduos com mais de 60 anos. "Pessoas com essa idade não podem deixar de tomar a vacina pneumo 23", diz Paulo Olzon.

A pneumonia é o nome dado a inflamação nos pulmões causada por agentes infecciosos (bactérias, vírus, fungos e reações alérgicas). Entre os principais sintomas dessa inflamação dos pulmões, estão febre alta, suor intenso, calafrios, falta de ar, dor no peito e tosse com catarro. Adultos com doenças crônicas em órgãos como pulmão e coração -alvos mais fáceis para o pneumococo, devem tomar essa vacina sempre que há uma campanha de vacinação.

Mesmo que ela seja uma das vacinas mais importantes para ser tomadas é a única vacina do calendário que não é oferecida em postos de saúde. É preciso ir a um Centro de Referência para Imunobiológicos Especiais, em locais como o Hospital das Clínicas e a Unifesp.  
Vacina contra a febre amarela
A febre amarela é transmitida pelo mesmo mosquito transmissor da dengue, o Aedes aegypti. A doença rem como principais sintomas febre, dor de cabeça, calafrios, náuseas, vômito, dores no corpo, icterícia (pele e olhos amarelados) e hemorragias. "Se a febre amarela não for tratada, pode levar a morte", explica o especialista.

Por ser uma doença grave, e com alto índice de mortalidade, todas as pessoas que moram em locais de risco devem tomar a vacina a cada dez anos, durante toda a vida. Quem for para uma dessas regiões precisa ser vacinado pelo menos dez dias antes da viagem. No Brasil, as áreas de risco são: zonas rurais no Norte e no Centro-Oeste do país e alguns municípios dos Estados do Maranhão, do Piauí, da Bahia, de Minas Gerais, de São Paulo, do Paraná, de Santa Catarina e do Rio Grande do Sul.

Mesmo que os efeitos colaterais mais sérios sejam muito raros, a vacina contra febre amarela deve ficar restrita aqueles indivíduos que moram ou irão viajar para algum lugar de risco. "Nesse sentido, a preocupação dos médicos está relacionada ao risco de reação alérgica grave ou anafilática, que pode levar a morte os pacientes propensos", explica o infectologista Paulo Olzon.  
Vacina contra o influenza (gripe)
A vacina contra gripe deve estar na rotina de quem está com mais de 60 anos. "Muitas pessoas deixam de tomá-la com medo da reação que ela pode causar. Mas isso é um mito, já que a suposta reação do corpo não tem nada a ver com a vacina, e sim com a própria gripe. Isso porque, o vírus da gripe fica semanas em nosso corpo sem se manifestar e a proteção da vacina não é imediata como as pessoas imaginam", diz o especialista.

A gripe é transmitida por via respiratória, leva a dores musculares e a febres altas. Seu ciclo costuma ser de uma semana. Pessoas com mais de 60 anos podem tomar a vacina nos postos de saúde, enquanto os mais jovens podem ser vacinados em clínicas particulares.

"Os idosos que não querem esperar até a campanha anual de vacinação contra a gripe podem tomar a vacina em clínicas particulares em todas as épocas do ano", diz Paulo Olzon. 

sexta-feira, 14 de outubro de 2011

Script para o horário de verão

Fone: http://www.vivaolinux.com.br/artigo/Configurando-corretamente-para-o-Horario-de-Verao

Não há uma data fixa pré-estabelecida para o início e término do Horário de Verão no Brasil. A cada ano essa data é calculada de acordo com o pôr do sol. 

O comando a ser utilizado é o 'zic' - ZoneInfo Compiler. Ele vai gerar, a partir de um arquivo de dados, o arquivo binário que o Linux utiliza para saber as datas exatas. Esse arquivo se localiza normalmente em:

/usr/share/zoneinfo/America/Sao_Paulo

Agora nesse diretório, confira se existe um arquivo com mesmo nome, com extensão .zic (Sao_Paulo.zic). Caso exista, basta editá-lo conforme as informações abaixo. Se não existir, tudo bem, basta criar o arquivo em um lugar qualquer como /tmp com seu editor de texto favorito, e adicionar as seguintes linhas:
Rule    BrazilSP  2004    only    -       Nov     02      0:00    1:00    S
Rule    BrazilSP  2005    only    -       Feb     20      0:00    0       -

# Zone  NAME                    GMTOFF  RULES/SAVE      FORMAT  [UNTIL]
Zone    America/Sao_Paulo       -3:00   BrazilSP        BR%sT

Salve o arquivo como Sao_Paulo.zic e execute o seguinte comando como root:

# zic Sao_Paulo.zic

Feito isso, o arquivo: /usr/share/zoneinfo/America/Sao_Paulo vai ser atualizado com as novas definições de data.

Como último passo, o Linux utiliza o arquivo /etc/localtime para saber qual zona utilizar. Se seu arquivo /etc/localtime for um link simbólico(*1) para /usr/share/zoneinfo/America/Sao_Paulo já está tudo certo.

Caso não seja um link, basta copiar o que você acabou de alterar no lugar do atual. Como root:

# cp /etc/localtime /etc/localtime.backup
# cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime


E estará pronto! Basta conferir utilizando o comando date:

$ date
Sun Nov 7 23:06:52 BRT 2004

Note a zona "BRT" em vez de "BRST" (*2)

Artigo escrito por: Wagner Amaral em 21/10/2004 - 12:41

Considerações finais

  1. Se sua partição /usr não for a mesma do root "/", o arquivo /etc/localtime não deverá ser um link, visto que /usr será montada depois do kernel estar rodando, então o arquivo não será encontrado. Se seu /usr for montado, simplesmente copie o arquivo para /etc/localtime e estará resolvido.
  2. Para os curiosos:
    BRT == BRazilian Time (horário normal)
    BRST == BRazilian Saving Time (saving == econômico == horário de verão)





Fonte: http://danielaugusto.com/index.php/tag/linux/

#!/bin/sh
##############################################
# Script para atualizacao do Horario de Verao
##############################################

cp /usr/share/zoneinfo/America/Sao_Paulo /usr/share/zoneinfo/America/Sao_Paulo.`date +%Y`
cp /etc/localtime /etc/localtime.`date +%Y`
mkdir -p /usr/share/zoneinfo/Brazil
echo "Rule Brazil 2010 only - Feb 21 00:00 0 -" > /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2010 only - Oct 17 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2011 only - Feb 20 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2011 only - Oct 16 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2012 only - Feb 19 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2012 only - Oct 21 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2013 only - Feb 17 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2013 only - Oct 20 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2014 only - Feb 16 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2014 only - Oct 19 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2015 only - Feb 22 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2015 only - Oct 18 00:00 1 S" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Rule Brazil 2016 only - Feb 21 00:00 0 -" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Zone Brazil/East -3:00 Brazil BR%sT" >> /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Compilando o arquivo zic"
/usr/sbin/zic /usr/share/zoneinfo/Brazil/brasil10a15.zic
echo "Finalizando o processo"
cp /usr/share/zoneinfo/Brazil/East /usr/share/zoneinfo/America/Sao_Paulo
cp /etc/localtime /etc/localtime.bak
rm -f /etc/localtime
cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
echo "Aplicacao finalizada com sucesso"

quinta-feira, 13 de outubro de 2011

Filtrar o arquivo de log do CUPS

###########################
Script INICIADO em  DATA HORA BRT 2011
###########################
Para extrair do log do cups o arquivo de impresso, o usuário que imprimiu e a impressora deve-se:

1) Configurar o /etc/cups/cupsd.conf  com LogLeve Debug
2) As informações estão contidas no /var/log/cups/error_log
3)
for linha in  `egrep -n D /var/log/cups/error_log | egrep -i "argv.3.=\"smbprn" | egrep -i -v "Java|https|http" | cut -d ":"  -f 1`; do inicio=`expr $linha - 3`; fim=`expr $linha + 1`  ;  awk 'NR>='$inicio' && NR<='$fim' {print}' /var/log/cups/error_log ; done >> /PATHlog_completo``$DATA_ARQUIVO``.txt

Descrição: a variável linha recebe o nr da linha que contém a expressão argv?3?="smbprn. Esse número é utilizado para enviar para o comando awk que extrai do arquivo as linhas entre $linha -3 e $linha + 1 do arquivo /var/log/cups/error_log

O formato do arquivo gerado fica assim:

D [03/Oct/2011:09:11:02 -0300] [Job 221789] argv[0]="NOME DA IMPRESSORA"
D [03/Oct/2011:09:11:02 -0300] [Job 221789] argv[1]="NR DO JOB"
D [03/Oct/2011:09:11:02 -0300] [Job 221789] argv[2]="NOME DO USUÁRIO"
D [03/Oct/2011:09:11:02 -0300] [Job 221789] argv[3]="NOME DO ARQUIVO IMPRESSO"
D [03/Oct/2011:09:11:02 -0300] [Job 221789] argv[4]="1"





Pode-se também fazer um filtro usando o error_log e concatenando com o page_log. Esse script ganha em performance, pois é executado em duas etapas:


Esta primeira linha cria um arquivo intemediário extraindo as informações do error_log

cut -d ":"  -f 1-5  /var/log/cups/error_log | egrep -i "argv.2.|argv.3.|Get-Jobs ipp:\/\/localhost\/printers" | egrep -i -v "Java|https|http" >> /PATH``$DATA_ARQUIVO``.txt



Esta segunda linha de comando concatena, pelo número do JOB, do arquivo page_log
com o error_log

for nrjob in `awk -F: '/argv.3./ {print $4}' /PATHlog_cups$DATA_ARQUIVO.txt | awk '{ print substr ($4, 0,6)}'`; do  awk -F: '/'$nrjob'/  {print}' /var/log/cups/page_log |tr -d '\n' >> /PATH``$DATA_ARQUIVO``.txt; echo " DOC: " | tr -d '\n' >> /PATH``$DATA_ARQUIVO``.txt; awk -F: '/'$nrjob'/ && /smbprn/ {print}' /PATH``$DATA_ARQUIVO``.txt |awk '{print $6,$7,$8,$9, $10, $11, $12}' >> /PATHteste_cups``$DATA_ARQUIVO``.txt ; echo "###################################" >> /PATHteste_cups``$DATA_ARQUIVO``.txt; done

rm /PATHlog_cups``$DATA_ARQUIVO``.txt


O formato do arquivo fica assim:
NOME DA IMPRESSORA USUÁRIO JOB [DATA:HORA -0300] 1 1 - IP DA MÁQUINA DOC: NOME DO DOCUMENTO"
###################################
NOME DA IMPRESSORA USUÁRIO JOB [DATA:HORA -0300] 1 1 - IP DA MÁQUINA DOC: NOME DO DOCUMENTO"


###################################
NOME DA IMPRESSORA USUÁRIO JOB [DATA:HORA -0300] 1 1 - IP DA MÁQUINA DOC: NOME DO DOCUMENTO"
###################################
###########################
Script TERMINADO em  DATA HORA BRT 2011
###########################






Este Script Gera arquivos de log por impressora

#!/bin/bash
DATA_ARQUIVO=`date +%d-%m-%Y`

echo "###########################" >> /path/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt
echo "Script INICIADO em " `date` >> /path/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt
echo "###########################" >> /path/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt


Esta linha gera o arquivo intermediário

cut -d ":" -f 1-5 /var/log/cups/error_log | egrep -i "argv.0.|argv.1.|argv.2.|argv.3.|Get-Jobs ipp:\/\/localhost\/printers" | egrep -i -v "Java|https|http" >> /root/log_cups.txt


O restante do script extrai do arquivo intermediário as informações por impressora

for IMPRESSORA in `awk {print} impressora.txt`;
do for linha in `egrep -n D /root/log_cups.txt | egrep -i "argv.0.=\"$IMPRESSORA" | egrep -i -v "Java|https|http" | cut -d ":" -f 1`;
do fim=`expr $linha + 3` ;
awk 'NR>='$linha' && NR<='$fim' {print}' /root/log_cups.txt ; done >> /root/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt;
done


Esta linha deleta o arquivo intermediário e o resto é firula.

rm /root/log_cups.txt

echo "###########################" >> /root/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt
echo "Script TERMINADO em " `date` >> /root/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt
echo "###########################" >> /root/log_``$IMPRESSORA``_``$DATA_ARQUIVO``.txt

sexta-feira, 7 de outubro de 2011

Script para limpar lixeira do Samba

#!/bin/bash
echo "Arquivos armazenados na Lixeira ha mais de 7 dias " >> /tmp/arquivos_lixeira.txt
date >> /tmp/arquivos_lixeira.txt
find Path_da_lixeira/ -type f -ctime +7 -exec stat -c "%n %z"  >> /tmp/arquivos_lixeira.txt {} \;
find Path_da_lixeira/ -type f -ctime +7 -exec rm -f {} \;
date >> /path_do_arquivo/arquivos_lixeira.txt
echo "########################" >> /path_do_arquivo/arquivos_lixeira.txt

Script para converter a Base ldap do openldap para o RHDS

#!/bin/bash
INICIO=`date +%Y%m%d-%H%M%S`
ARQUIVO=backup_ldap_$INICIO
VERSAORHDS=backup_ldap_ver_rhds_$INICIO
LOG=/backup/ldap/logs/log_bkp_ldap.txt

#Iniciando
echo 1. Iniciando em $INICIO
echo "Iniciando em $INICIO" >> $LOG
echo "Iniciando Extracao de dados do LDAP.." >> $LOG
echo
echo 2. Carregando LDIF...
slapcat  -l /backup/ldap/$ARQUIVO.ldif
sed "s/structuralObjectClass/#structuralObjectClass/g"  /backup/ldap/$ARQUIVO.ldif > /backup/ldap/verrhds1.ldif
sed "s/entryCSN/#entryCSN/g"  /backup/ldap/verrhds1.ldif > /backup/ldap/verrhds2.ldif
sed "s/entryUUID:/#nsUniqueId:/g"  /backup/ldap/verrhds2.ldif > /backup/ldap/verrhds3.ldif
sed "s/o=nomebaseantiga/o=nomebasenova/g"  /backup/ldap/verrhds3.ldif > /backup/ldap/$VERSAORHDS.ldif
rm -f /backup/ldap/verrhds1.ldif /backup/ldap/verrhds2.ldif /backup/ldap/verrhds3.ldif


echo
echo "Finalizado, Comprimindo.." >> $LOG
echo 3. Comprimindo Arquivo..
tar -czvf /backup/ldap/$ARQUIVO.etc.ldif.tar.gz /backup/ldap/$ARQUIVO.ldif /etc/ldap
echo "Compressao finalizada" >> $LOG
echo "Excluindo arquivo nao compactado..." >> $LOG
echo 4. Excluindo arquivo nao compactado...
rm /backup/ldap/$ARQUIVO.ldif -f
FINAL=`date +%Y%m%d-%H%M%S`
echo Backup do LDAP Iniciado em $INICIO
echo Backup do LDAP Finalizado em $FINAL
echo "Backup finalizado em $FINAL" >> $LOG
echo "Informacoes do arquivo" >> $LOG
FILE=`ls -al /backup/ldap/$ARQUIVO.etc.ldif.tar.gz`
echo $FILE >> $LOG
echo "." >> $LOG
echo "#######################################################" >> $LOG

NAGIOS - erro para monitorar HTTPS

Mensagem de erro - HTTP WARNING: HTTP/1.1 401 Authorization Required 

Dentro do arquivo comandos.cfg insira a configuração abaixo

define command{
        command_name    verifica_site_httpscrao
        command_line    $USER1$/check_http -e 401 --ssl -H $ARG1$ -w $ARG2$ -c $ARG3$ -t $ARG4$ -S
        }

 Obs: sem o "-e 401" o erro ocorre, com os referidos parâmetros funciona perfeitamente.

quinta-feira, 6 de outubro de 2011

Mais comandos

Ultima modificação: 23 de 6 de 2011

Introdução

O awk trabalha sempre dessa forma:
awk padrão ação
O padrão é um termo buscado, pode ser imprimir as linhas que contém
a palavra sérgio do arquivo de grupos:
awk -F: '/sergio/ {print $1}' /etc/group
O awk considera o espaço como separador de campos padrão,
devido à extrutura do arquivo "/etc/group" modificamos o
separador de campos usando:
-F:
O que está entre barras "/" é o padrão a ser buscado
e o "$1" diz ao awk para imprimir o primeiro campo.

Caso não seja informado nenhum padrão o awk imprime a linha inteira,
a menos que peçamos para imprimir um campo, veja:
awk -F: '{print $1}' /etc/group
No comando acima não foi informado nenhum padrão, apenas
foi informado ao awk qual o separador de campos e qual
campo quería-mos como saída.

Obs: Sempre que trabalhar com o awk use aspas simples
pois o cifrão "$" representa para o awk indicador de campos
(começado em 1, se for zero é a linha toda), mas se não forem
usadas aspas simples o shell tentará interpretar primeiro
buscando alí uma variável que na verdade não existe.

Variáveis do awk

NR     Contém o número do registro atual
NF     contém o número de registros por campo
FS     indica o separador de campos
RS     indica o separador de registros
OFS     indica o separador de campo do arquivo de saida
ORS     indica o separador de registros do arquivo de saida

separadndo dados - awk range

Nossa missão, separar países de cidades
Country1
city1
city2
 
Country2
city3
city4
awk 'BEGIN {RS="";FS="\n"} {print $1 > "countries"} {for (i=2;i<=NF;i++) print $i > "cities"}' teste.txt 
 
# imprime do campo 2 em diante
awk 'BEGIN {RS="";FS="\n"} {print substr($0,match($0,$2))}' teste.txt 
source: http://stackoverflow.com/questions/6436170/extracting-line-after-new-line

imprimir ultimo campo

awk '{print $NF}' file
# imprimir o ultimo campo 'juntando em uma só linha'
awk -F":" '{printf $NF ""}' file

buscar ocorrência exata com awk

awk '$2=="172.17.4.1" {print $1}' file.txt

numerar linhas

awk '{print FNR "\t" $0}' files*

imprimir numero da linha de um padrão

awk '/enable bash completion/ {print NR}' /etc/bash.bashrc

imprimindo tudo menos o 5º campo

awk '{ $5=""; print }' file

imprimindo o primeiro e o último campos

Tenho uma coluna que contém nomes, exemplo:
 
Ciclano Fulano da Silva Soares
José dos Anzóis Pereira
Juca da Silva
Mateus Marcus Lucas e João
Benedita Maria da Silva
Santa Maria
 
estou precisando formatá-los pegando apenas o primeiro e o último nome, o único
problema é que eles não tem o mesmo tamanho... como devo fazer? alguem pode me
ajudar?
 
 
JJ.Santanna
 
awk '{print $1,$NF}' teste.txt

Pegando o número ip

ifconfig eth0 | awk '/inet add/ {print $3}'
   awk '/inet addr/ {print $2}' <(ifconfig eth0)
   #obs: a opção --> hostname -I é mais prática
No caso acima pedimos para listar o endereço atualmente
atribuido à interface de rede eth0 (lembre-se que em alguns sistemas
a interface padrão pode ser eth1). Em seguida a saída
que deveria ser mostrada na tela é redirecionada para o awk.
O awk por sua vez procura pelo padrão "inet end" e imprime o
terceiro campo retornando somente o ip.

Pegando o endereço do roteador

awk 'NR==2 {print $1}' /proc/net/arp
A explicação: Mostre o campo 1 '$1' do registro 2 'NR==2' do arquivo /proc/net/arp

Removendo linhas duplicadas

awk '!($0 in a) {a[$0];print}' file
 
awk '!a[$0]++' file

Imprimindo linhas de um intervalo

awk 'NR >= 27 && NR <= 99' file.txt > /tmp/file3

fonte: http://br.groups.yahoo.com/group/shell-script/message/31705
 
Srs.,
 
Boa tarde!
 
Gostaria de uma ajuda para solucionar este desafio(pra min..rs).
Desejo capturar um intervalo de linhas separadas por chaves.
 
ex:
 
#arquivo teste
primeira_linha
teste{
linha1
linha2
linha3
}
ultima_linha
 
Gostaria de saber qual comando posso utilizar para que seja possivel jogar o que
esta entre chaves para alguma variavel:
 
linha1
linha2
linha3
 
desde já agradeço atenção!
 
att,
Cleberson.

solução

cat teste.txt | awk '/teste{/,/}/' | grep -v '{\|}'

Imprimir linhas em intervalos específicos (neste caso a cada 3 linhas)


awk 'NR%3==1' file

um comentário a cada 5 linhas
ls -l | awk '{if (NR % 5 == 0) print "-- COMMIT --"; print}'

imprimindo um espaço a cada duas linhas

Bash insert newline after every 2 lines
source: http://unstableme.blogspot.com/2011/05/bash-insert-newline-after-every-3-lines.html
awk '!( NR % 2 ) {$0 = $0"\n"} {print}' file

juntando linhas de 3 em e

você tem isto
field1
field2
field3
field1
field2
field3
e quer isto
field1,field2,field3
field1,field2,field3
deve então fazer isto
awk '{if (NR%3==0){print $0;}else{printf "%s,", $0;}}' file.txt
 
# ou
awk '{ORS=NR%3?",":"\n";print}' file.txt

zerando a primeira coluna

awk '{$1=""; print}'

Substituição de um padrão - usando a função sub

echo "isto aquilo" | awk '{ sub(/aquilo/, "aquele"); print }'

Substituindo o terminador de linha

Convert Windows/DOS newlines (CRLF) to Unix newlines (LF) from Unix.
awk '{ sub(/\r$/,""); print }'
Convert Unix newlines (LF) to Windows/DOS newlines (CRLF) from Unix.
awk '{ sub(/$/,"\r"); print }'
Substitute “foo” with “bar” only on lines that contain “baz”.
awk '/baz/ { gsub(/foo/, "bar") }; { print }'

imprimir um intervalo

awk '/start_pattern/,/stop_pattern/' file.txt

colocando em maiúsculas

echo "um dois" | awk '{print $1, toupper($2)}'

convertendo tags html/xml para minúsculas


referência inicial
cat usuarios.txt | awk '{print tolower($1)}'

Concatenando linhas

Concatenate every 4 lines of input with a comma.
awk 'ORS=NR%4?",":"\n"'
O comando acima resolve questões como esta:
http://br.groups.yahoo.com/group/sed-br/message/4369
Senhores,
Ainda não consegui achar uma solução, tem um arquivo que ele assim:
 
dn: uid=xx,ou=Usuarios,dc=bbbb,dc=com,dc=br
cn: fulano de tal
homePhone: 053922
mail: fulano@...
dn: uid=yy,ou=Usuarios,dc=bbb,dc=com,dc=br
cn: beltrano de tal
homePhone: 053923
mail: beltrano@...
 
Isso se repete, sempre, dn:, cn: homePhone: e mail:, gostaria de deixar
ele dessa forma:
 
dn: uid=xx,ou=Usuarios,dc=bbbb,dc=com,dc=br;cn: fulano de tal;homePhone:
053922
 
em coluna para cada 4 linhas do arquivo. Alguém tem alguma idéia de como
fazer isso?

Calculadora com awk

# coloque no seu ~/.bashrc
calc(){ awk "BEGIN{ print $* }" ;}
 

Exibindo os maiores arquivos

Insira estas linhas no bashrc
biggest () {
du | sort -r -n | awk '{split("k m g",v); s=1; while($1>1024){$1/=1024; s++} print int($1)" "v[s]"\t"$2}'
}
em seguida pode abrir outro terminal e fazer
biggest | head -20

retirar ultimo diretório de uma lista

echo /teste/teste1/teste2/teste3 | awk -F"/" '{print $NF}'
 
-F"/" = especifica / como divisor de campo
$NF = último campo

Ordenando strings por tamanho

awk '{ print length($0),$0 | "sort -n"}'  file

Imprimindo linhas maiores que

awk 'length>72' file

imprimir linhas com mais de três campos

awk 'NF >= 3' filename

Somando listas

ls -la | awk 'BEGIN{count=0}; {count++; print $5} END{ print "Total:", count}'
outro exemplo
awk '{sum+=$2} END {print sum}' arquivo
Somando os números de um arquivo
34
42
11
6
2
99
...
awk '{ sum += $1 } END { print sum }' file

Trocar de posição os campos 1 e 2 de um arquivo e imprimir a linha

{ temp = $1 ; $1 = $2 ; $2 = temp ; print }
 
  Um outro jeito mais inteligente!
 
  '{print $2,$1}'

imprimindo linhas impares

cat -n /etc/passwd | awk '$1 % 2 == 1 {print}'

Combinando com ls

ls -l | awk$6 == "Nov" { sum += $5 }
             END { print sum }’
 

Localizando processos por usuário

ps aux | awk '!/root|nobody/ { if ($4>2) {print $2,$11}}'

Pegar coluna de linha especifica

#exemplo da coluna 2 na linha 5
  awk 'NR == 5 {print $2}'
imprimir primeira coluna da linha 2
awk 'NR==2 {print $1}' arquivo

somando números em um arquivo

awk '{s+=$0} END {print s}' /tmp/file.txt

somando os 10 primeiros números


$ seq 10 | awk '{ i+=$1 } END { print i }'
55

Opção com o paste + bc para somar numeros em um arquivo

paste -sd+ /tmp/file.txt | bc
 
awk '{ sum += $1 } END { print sum }' file


Calculando sua fatura do com o awk

Eu tenho uma fatura assim:
12/01/2007 INSINUANTE_LJ_187(12/12)    187,91
04/09/2007 RABELO_SOM_E_IMAGEM(04/12)  51,75
03/11/2007 EXTRA_1375_PARANGABA(03/04) 41,75
03/11/2007 EXTRA_1375_PARANGABA(03/04) 11,75
13/11/2007 INTUICAO(02/02)             34,50
21/11/2007 ADAUTO_PECAS(02/06)         200,00
17/12/2007 ANUIDADE(12/12)             7,00
26/12/2007 VIACAO_ITAPEMIRIM(01/03)    259,34
 
awk '{ total = total + $3} END {print total} ' fatura.txt

A variável total receber o valor dela + o acumulado
do terceiro campo do arquivo "fatura.txt", mas
só é impresso a soma no final graças ao uso do
END

Resultado:
794

somando campos de arquivos csv

awk -F ',' '{ x = x + $4 } END { print x }' test.csv
procura e mostra linhas com o terceiro campo igual a "peter" ou que contenham o string "marie":
cat nomedoarquivo | awk '$3 == "peter" || $3 ~ /marie/'

Imprimir o tamanho de uma linha

awk '/root/ {print NR " - " lenght}' /etc/passwd

imprimir linhas menores que

awk 'length<30' /etc/passwd

Imprimir uma linha específica

a ação padrão do awk é imprimir portanto não precisa fazer 'nr=1234 {print}' basta fazer o teste
comparando o número do registro (linha)

awk 'NR==1234' arquivo

Imprimir o nome dos usuários acima de um determinado GID

awk -F":" '{if ($4 >= 1000) print $1}' /etc/passwd

Imprimir nome de usuário o id

awk -F":" '{ print "username: " $1 "\t\tuid:" $3" }' /etc/passwd

Programa que imprime o tamanho da maior linha

awk '{ if (length($0) > max) max=length($0) }  END { print max }' texto.txt

Imprimir linhas maiores que 80 caracteres

length($0) > 80

visualizando logs do squid

tail -f /var/log/squid/access.log | awk '{print "Host: "$3 "site: "$7}'

Imprimindo um trecho de arquivo no awk

awk '/start_pattern/,/stop_pattern/' file.txt

Mostrar usuários com ID acima de 1000

awk -F":" '$3 > 1000 {print $0}' /etc/passwd

Modificando o separador de registros e de campos


Se você tem o arquivo...
1
2
3
4
5
teste
6
7
8
9
10
teste
11
12
13
14
15
teste
16
17
18
19
20
teste

... e quer definir como delimitador de registros a palavra "teste"
e o delimitador de campos para quebra de linha faça:
awk 'BEGIN { FS="\n"; RS="teste"} {if (NR=="2") print }' teste.txt

Imprimir valores negativos

Como imprimir somente os valores negativos usando o awk?
Queremos imprimir somente os valores negativos do seguinte arquivo
-5232,-92338,84545,34
-2233,25644,23233,2
6211,-1212,4343,43
-2434,621171,9121,-33

awk  'BEGIN {RS=",|\n"}/^-/ {print}' file.txt
Indicamos duas alternativas para o Separador de Registros, vírgula ou quebra de linha ", | \n" assim ele considera cada valor
como sendo uma linha, em seguida usamos uma expressão regular para pegar o começo de linha com o sinal de menos

Remover linhas em branco

awk 'NF>0' texto.txt

Modificar campo 2 mediante uma condição

awk '{print $1,($2<0.1) ? 0.0 : $2}' file1.txt

Imprimir somente usuários com UID igual a 1.000 ou maior

awk -F: '$3 > 999 {print $0}' /etc/passwd

Imprimir a última linha

awk 'END {print $0}' /etc/passwd

contar o número de linhas em um arquivo

awk 'END { print NR }' <arquivo>

Problemas da lista shell script

Olá pessoal... tenho o seguinte arquivo:
cat file.txt
 
bdacp tty1 Thu Nov 13 12:16 - down (00:31)
bdacp tty3 Thu Nov 13 12:53 - down (00:13)
bdacp tty3 Thu Nov 13 13:09 - down (02:34)
reboot system boot 2.4.31 Thu Nov 13 12:15 (00:32)
reboot system boot 2.4.31 Thu Nov 13 12:48 (00:18)
reboot system boot 2.4.31 Thu Nov 13 13:07 (02:35)
teste pts/0 Thu Nov 13 12:53 - 12:53 (00:00)
teste tty2 Thu Nov 13 12:51 - 12:55 (00:04)
teste tty2 Thu Nov 13 13:09 - 13:31 (00:22)
usuario pts/0 Thu Nov 13 12:49 - 12:50 (00:00)
usuario tty1 Thu Nov 13 12:49 - 13:04 (00:14)
usuario tty1 Thu Nov 13 13:09 - 13:23 (00:14)
 
 
e preciso dessas informações
 
bdacp 12:16 - down (00:31)
bdacp 12:53 - down (00:13)
bdacp 13:09 - down (02:34)
reboot 12:15 (00:32)
reboot 12:48 (00:18)
reboot 13:07 (02:35)
teste 12:53 - 12:53 (00:00)
teste 12:51 - 12:55 (00:04)
teste 13:09 - 13:31 (00:22)
usuario 12:49 - 12:50 (00:00)
usuario 12:49 - 13:04 (00:14)
usuario 13:09 - 13:23 (00:14)
 
solução
 
  awk '{$1, $6, $8, $9}' arquivo
 

print the total number of lines that contain "Beth"

awk '/Beth/{n++}; END {print n+0}' file

sequencia de fibonacci em awk

seq 50| awk 'BEGIN {a=1; b=1} {print a; c=a+b; a=b; b=c}'

Awk - replace blank spaces with single space

Fonte: http://unstableme.blogspot.com/2009/11/awk-replace-blank-spaces-with-single.html

Input file 'file.txt' contains fields separated with uneven spaces (or tabs)

$ cat file.txt
6767            1212   9090 12
657676 1212  21212                      21232
76767           12121 909090    121212
12      9090            1212                            21

Required: Replace one or more space with single space or single tab or comma.
The solutions using awk:

$ awk -v OFS="," '$1=$1' file.txt
Output:
6767,1212,9090,12
657676,1212,21212,21232
76767,12121,909090,121212
12,9090,1212,21

$ awk -v OFS="\t" '$1=$1' file.txt
Output:
6767    1212    9090    12
657676  1212    21212   21232
76767   12121   909090  121212
12      9090    1212    21

$ awk -v OFS=" " '$1=$1' file.txt
Output:
6767 1212 9090 12
657676 1212 21212 21232
76767 12121 909090 121212
12 9090 1212 21

Recebendo variáveis do shell


read_val=0301; awk -v var=${read_val} '{sub(/0019/,var); print}' infile


echo "Enter ID: "
read ID
awk -v ID=$ID 'NR==14{ print ID}{print}' "file"
 
# assim dá pra usar o argv para passar alguns parâmetros no script
 
awk 'BEGIN {print ARGV[5]}' 1 2 3 4 5 6 7
 
awk 'BEGIN {print ARGV[5] "\n" ARGV[3]}' 1 2 3 4 5 6 7
 
awk -v sq=`pwd` 'BEGIN {print "você está em " sq}'

extraindo dados de um arquivo

Você tem um arquivo assim:
a.txt
{some data}
success!!
 
b.txt
{some data}
success!!
 
c.txt
{some data}
error!!
deseja a seguinte saida:
a.txt: success
b.txt: success
c.txt: error

com awk dá pra fazer assim:
awk 'BEGIN {RS="\n\n"} {gsub("!!","",$NF);print $1": "$NF}' teste.txt
 
# um jeito bem mais simples
awk '{print $1": "$4}' RS="\n\n" results.txt

juntando linhas a cada 5 linhas

Pessoal,
 
tenho uma comando que gera a seguinte saida, onde a unica padronagem é uma
sequencia de 5 linhas:
 
0
r5
751625160
601300096
391584768
1
r5
1401393800
1121115008
621056
12
r5
1401393800
1121115008
68344320
45
r5
1401393800
1121115008
1235456
223
r5
2522508840
2242230016
388346880
 
Eu precisava gerar a saida neste formato, em 5 colunas:
 
0 r5 751625160 601300096 391584768
1 r5 1401393800 1121115008 621056
12 r5 1401393800 1121115008 68344320
45 r5 1401393800 1121115008 1235456
223 r5 2522508840 2242230016 388346880
Como poderei fazer?
Obrigado,
Alessandro Almeida.
solução
awk '{printf("%s%s", $0, (NR%5 ? " " : "\n"))}'

como saber se seu sistema é 32 ou 64 bits?

file /bin/bash | awk '{print $3}'

processando html com o awk


#!/bin/bash
awk ' {
print $0
if(NR % 8 == 0 )
print "<tr>"
} ' file.csv > file1.csv
 
#Or, directly on the command line: 
 
awk ' {print $0; if(NR % 8 == 0 ) print "<tr>"} ' file.csv > file1.csv