[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
script distribuido em cluster
From: |
Rodrigo F Baroni |
Subject: |
script distribuido em cluster |
Date: |
Thu, 20 May 2004 12:42:48 -0300 |
User-agent: |
Mozilla Thunderbird 0.6 (Windows/20040502) |
Olá pessoal,
Estou com um problema em um script que estou fazendo para limpar
o lixo deixado por programas usando pvm bugados em um cluster . Tudo o
que o script precisa fazer é limpar o /tmp/ de todos os nohs do cluster
e matar todos os processos zombies espalhados no cluster.
Está tudo funcionando legal, o único problema está sendo com a
saída do seguinte comando :
rsh nodeXXX ps aux
A saída está saindo truncada em 81 caracteres na coluna,
escondendo o nome do processo a ser morto - que é o que eu preciso obter
no script para informar ao usuario os processos "killed". Procurei na
net, nas man pages, mas consegui resolver esse problema de truncamento
de saida do rsh.... Algum especialista teria alguma ideia ?
Valeu caros,
Rodrigo F Baroni
----------
# Autor: Rodrigo Ferreira Baroni, Breno Mazieiro
# Wrote at COC University - Ribeirao Preto / Brazil
# purpose to help at Paralell Programming Course in PVM programs development in
the Cluster of UNICOC.
# This program is under GPL, feel you free to modificate/distribute/get money
with it ;P.
#!/bin/bash
USER_I_AM=`whoami`
echo -e "\n---------------- Cleaning Temporaries Distribuited Files ---------"
echo -e "\nCleaning temporary distribuited trash in remote nodes.. \n"
for machine in node254 node252 node251 node250
do
echo "Doing : rsh $machine rm -f /tmp/* 2>&- "
rsh $machine rm -f /tmp/* 2>&-
done
echo -e "\nDoing local : rm -f /tmp/* 2>&-"
rm -f /tmp/* 2>&-
echo "All cleaned."
echo -e "\n----------------- Cleaning Processes ---------------- "
echo -e "\nSearching for distribuited zombies processes in remote nodes..\n "
for machine in node254 node252 node251 node250
do
PROCESS=""
echo "Killing my processes running at remote machine $machine" :
LIST_PROCESSES=`rsh $machine ps aux | grep $USER_I_AM | grep -v sshd |
grep -v ps | grep -v awk | grep -v grep | grep -v bash | awk '{print $2, $11}'`
if [ -n "$LIST_PROCESSES" ]
then
echo "$LIST_PROCESSES" | while read PROC_NUM PROCESS
do
if [ -n "$PROCESS" ]
then
rsh $machine kill -9 $PROC_NUM
echo "Process $PROCESS killed."
else
echo "none."
fi
PROCESS=""
done
else
echo "none."
fi
done
PROCESS=""
echo -e "\nLocal processes : "
LIST_PROCESSES=`ps aux | grep $USER_I_AM | grep -v sshd | grep -v ps | grep -v
awk | grep -v grep | grep -v bash | grep -v limpa_lixo_distribuido_do_pvm.sh |
awk '{print $2, $11}'`
if [ -n "$LIST_PROCESSES" ]
then
echo $LIST_PROCESSES | while read PROC_NUM PROCESS
do
if [ -n "$PROCESS" ]
then
kill -9 $PROC_NUM
echo "Process $PROCESS killed."
else
echo "none."
fi
PROCESS=""
done
else
echo "none."
fi
echo -e "\n----------------- Done sucessefuly. Restart PVM -----\n "
[As partes desta mensagem que não continham texto foram removidas]
- script distribuido em cluster,
Rodrigo F Baroni <=