Shell scriptig

Status
Fechado a novas mensagens.

zbenta

Power Member
Boas minha gente,

Alguém me pode dar umas dicas sobre shell scripting?
Tenho uma tarefa a correr no crontab que me monitoriza, através de snmp, as interfaces de rede de uma máquina. Com esta tarefe verifico o ifAdminStatus, o ifOperStatus e reencaminho o output, juntamente com a data e hora da execução, para um ficheiro de texto. Agora o que eu precisava era de criar um script que me contasse as linhas do ficheiro, e apagasse todas excepto as últimas 63 linhas. De seguida gostaria de verificar se houve alteração em algumas das interfaces e automáticamente enviar uma trap snmp para um host específico.
 
para contar as linhas usa o "wc -l" (éle) :P
para apagares todas as linhas excepto as ultimas 63 usa "tail -n 63"
para diferenças usa o "diff -u"

O resto acho que deves conseguir fazer.
 
um script que me contasse as linhas do ficheiro, e apagasse todas excepto as últimas 63 linhas.

Código:
#!/usr/bin/perl 

use strict;
use warnings;
use Tie::File;

my $file = q|/path/to/file.txt|;

tie my @linhas, 'Tie::File', $file or die "$!\n";
# Se precisas de saber quantas linhas tem o ficheiro, 'descomenta' a linha seguinte
#print "O ficheiro $file tem ", ~~@linhas, " linhas\n";
my @rev_linhas = reverse @linhas;
@linhas = reverse (splice @rev_linhas, 0, 63);
untie @linhas or die "$!\n";

De seguida gostaria de verificar se houve alteração em algumas das interfaces e automáticamente enviar uma trap snmp para um host específico.
Esta parte é mais complicada, para mim, de fazer à 'distância', mas usaria o módulo Net::SNMP.
 
Boas minha gente,

Obrigado pela ajuda, vou ver se consigo implementar isto logo quando chegar a casa.

VUDU, tens razão no teu comentário, peço desculpa pela falha, mas sabes como é quando se precisa de ajuda nem sempre se "lê com olhos de ler".

slack_guy, eu estou a usar o netsnmp para monitorizar os hosts, mas obrigado pela dica.
Relativamente ao script, achas que o perl é a melhor opção?
 
Status
Fechado a novas mensagens.
Back
Topo