December 16th, 2009
roger
Um exemplo como a bash é poderosa pediram para criar um script que remove-se ficheiros com mais de x dias.
Quando já estava a pensar em perl,grep’s e awk’s um colega salva-me o dia com este comando
find /pasta/* -mtime +15 -exec rm {} \;
testado em HPux e linux
November 17th, 2009
roger
Foi-me solicitado para monitorizar um determinado filesystem e que ao atingir uma determinado valor de ocupação deveria ser chamado um script externo. elaborei o seguinte script que deixo aqui para referência futura
#!/bin/ksh
#Data Actual
date=$( date )
#utilizacao de disco
fschk=$(bdf /arc | grep /arc | grep -v vg | awk ‘{ print $4} ‘ | sed ’s/%//’)
#confirma se bd ja esta a ser tratada
rman=$(ps -elf | grep rman | grep -v grep | wc -l)
#
if [ $fschk -ge 50 ] ; then
if [ $rman -gt 0 ] ; then
echo “$date $fschk % processo rman esta a correr” >> logmonfs
else
echo “$date $fschk % inicializando o script xpto.sh” >> logmonfs
sh -x xpto.sh
fi
else
echo “$date filesystem /arc ocupa $fschk % ” >> logmonfs
fi
Tarefa abrir 80 zips e substituir um documento.
Uma vez que não gosto de tarefas rotineiras resolvi elaborar um script para isto e aqui fica.
#!/usr/bin/perl -w
use warnings;
#use strict;
use Archive::Zip qw( :ERROR_CODES );
#list directory
@files = <*.zip>;
foreach $file (@files) {
print $file . “\n”;
# Read the ZIP
my $zip = Archive::Zip->new();
unless( $zip->read($file) == AZ_OK ) {
die “read error\n”;
}
# Update file
$zip->removeMember( ‘Pathdentrodozip’);
$zip->addFile( ‘.Pathforadozip’, ‘Pathdentrodozip’ );
# Save the Zip file
$zip->overwrite();
}
Posso ainda melhorar mas não prevejo ter que usar novamente este script.
O que tive de ler: Modulo CPAN
E tive ajuda do Bruno Barão na interpretação do modulo que desde já agradeço