plaspkg lite

Publicado por Reinaldo Marques de Lima 25/10/2005

[ Hits: 5.378 ]

Homepage: http://plasticossj4.wordpress.com

Download plaspkg_lite.bsh




uma outra versão do programa "plaspkg" que ao inves de abrir um menu as opções são selecionadas diretamente da linha de comando...

  



Esconder código-fonte

#! /bin/bash

##############################################################
#                                                            #
# plaspkg_lite wrote by Reinaldo Marques de Lima (Plastico)  #
# criação iniciada em: 10/2005                               #
# concluido em: em curso                                     #
# ultima atualização: 24/10/2005                             #
# descrição:                                                 #
# pacote de scripts para automatizar a execução de programas #
# roda aplicativos de uma lista, inclui e exclui aplicativos #
# da lista,mostra o conteudo da lista e mata processos que   #
# estejam travados.                                          #
#                                                            #
##############################################################
#                                                            #
# A mesma versão do pacote 'plaspkg' sem a opção de menu,    #
# ao inves disto aceita opções diretamente da linha de       #
# comando.                                                   #
#                                                            #
##############################################################


# primeira parte, ajuda do programa
#--------------------------------------------------------

if [ $# -lt 1 ]; then

        echo
        echo "    Parametro invalido: "
        echo "    Para ajuda digite plaspkg_lite.bsh --help"
        echo

elif [ $1 = --help ]; then

        echo
        echo "   *********** Ajuda do programa 'plaspkp_lite' ********** "
        echo "   *                                                     * "
        echo "   * Programa criado para automatizar a execução de      * "
        echo "   * aplicativos (xmms, amsn, firefox, etc...) primeiro  * "
        echo "   * alimente uma lista com os nomes dos programas,      * "
        echo "   * depois execute um script para iniciar estes         * "
        echo "   * programas, você pode também ver o contaudo da lista * "
        echo "   * e manipula-la adicionando e removendo alguns nomes  * "
        echo "   * desta lista ou ainda você pode finaliza um          * "
        echo "   * determinado processo.                               * "
        echo "   * As opções são:                                      * "
        echo "   *                                                     * "
        echo "   * 1 (plassee) Para ver o conteudo da lista.           * "
        echo "   * 2 (plasadd) Para adicionar nomes a lista.           * "
        echo "   * 3 (plasall) Para iniciar os Programas da lista.     * "
        echo "   * 4 (plasrm) Para removar nomes da lista.             * "
        echo "   * 5 (plaskill) Para 'Matar' os Programas ou outro     * "
        echo "   * processo qualquer.                                  * "
        echo "   *                                                     * "
        echo "   * Escolha uma das opções.                             * "
        echo "   *                                                     * "
        echo "   * execute 'plaspkg_lite.bsh [opção desejada]'         * "
        echo "   *                                                     * "
        echo "   ******************************************************* "
        echo
else

        OPCAO=$1

fi

funcao.OPCAO() {

        case $OPCAO in

        1) plassee; ;;
        2) plasadd; ;;
        3) plasall; ;;
        4) plasrm; ;;
        5) plaskill; ;;

        esac

}

# plassee: opção 1
#----------------------------------------------------------
# mostra na tela as ocorrencias contidas em 'plasall.txt'
#----------------------------------------------------------

plassee() {

        echo
        echo "    *** Opção 1 ( plassee ) ***"
        MOSTRA=`cat plasall.txt`

        echo
        echo "    O conteudo da Lista é:"
        echo
        for i in ${MOSTRA[*]}; do

                echo $i

        done

        echo

unset MOSTRA

}

# plasadd: opção 2
#----------------------------------------------------------
# alimenta uma lista de aplicativo para serem iniciados
#----------------------------------------------------------

plasadd() {

        echo
        echo "    *** Opção 2 ( plasadd ) ***"
        echo
        echo "    Digite os nomes dos programas: "
        read PROGRAMAS
        ARQUIVO="plasall.txt"

        for i in ${PROGRAMAS}; do

                if ! grep -w ${i} $plaspkg_lite.bsh > /dev/null; then

                        echo ${i} >> $ARQUIVO
                        echo "    '$i' cadastrado em 'plasall.txt'."

                else

                        echo "    Argumento '$i' já existe na lista."

                fi

        done


unset PROGRAMAS
unset ARQUIVO

}

# plasall: opção 3
#----------------------------------------------------------
# executa tudo que estiver listado em 'plasall.txt'
#----------------------------------------------------------

plasall() {

LISTA=`cat plasall.txt`

        for i in ${LISTA}; do

                if [ `ps -ef|grep $i | wc -l` -gt 1 ]; then

                        echo "Aplivativo $i ja está em execução."

                else

                        echo "iniciando aplicativo $i"
                        $i &

                fi

        done

                echo "Fim da Lista de execução, digite ENTER para sair."
                exit

unset LISTA

}

# plasrm: opção 4
#----------------------------------------------------------
# retira um nome de aplicativo da lista em 'plasall.txt'
#----------------------------------------------------------

plasrm() {

        echo
        echo "    *** Opção 4 ( plasrm ) ***"
        echo
        echo "    Digite o programa que será removido da lista:"
        read PROGRAMA

        ARQUIVO="plasall.txt"
        TESTE=`grep $PROGRAMA plasall.txt`

                if [ ! $TESTE ]; then

                        echo
                        echo "    Argumento $PROGRAMA não existe na lista"
                        echo

                else

                        sed "/$PROGRAMA/d" $ARQUIVO > .tmp
                        cat .tmp > $ARQUIVO
                        rm -f .tmp

                        echo
                        echo "    O argumento $PROGRAMA foi removido da lista"
                        echo

                fi

unset ARQUIVO
unset PROGRAMA
unset TESTE

}

# plaskill: opção 5
#----------------------------------------------------------
# mata processos buscando o PID
#----------------------------------------------------------

plaskill() {

        KILL="/bin/kill"

        echo
        echo "    *** Opção 5 ( plaskill ) ***"

        echo
        echo "    Digite o nome do processo que voce quer matar: "
        read APLICATIVO1

        echo
        echo "    Voce quer matar mais algum processo? (s/n) "
        read RESPOSTA

                if [ $RESPOSTA != "s" ] && [ $RESPOSTA != "n" ]; then

                        echo
                        echo "    ERRO: escolha somente (s) ou (n)"
                        echo

                fi

                if [ $RESPOSTA = s ]; then

                        echo
                        echo "    digite: "
                        read APLICATIVO2
                        PROCESSO=($APLICATIVO1 $APLICATIVO2)
                else

                        PROCESSO=($APLICATIVO1)

                fi

        for i in ${PROCESSO[*]}; do

                if [ $i = X ]; then

                        echo
                        echo "    ts ts, fazendo caca!!!"
                        echo

                 elif [ `ps -ef|grep $i | wc -l` -lt 2 ]; then

                        echo
                        echo "    aplicativo não esta rodando ou nome esta errado
"
                        echo

                else

                        JOB=`ps -ef|grep $i | awk {'print $2'} | head -1`

                        $KILL $JOB
        
                        echo
                        echo "O processo $JOB referente ao aplicativo $i foi fin
alizado"
                        echo

                fi

        done

unset KILL
unset JOB
unset PROCESSO

}

funcao.OPCAO

Scripts recomendados

Enviando arquivo via ftp

getgazette - script para baixar a Linux Gazette

BC - ScreenGet

Automatizando o serviço do Redmine via webrick

Instalar o screenFetch em qualquer distribuição


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts