shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]