Enviado em 21/11/2011 - 12:39h
Pessoal, estou começando a estudar shell script e já fiz alguns scripts simples.#!/bin/bash
#
# atualizar_sistema.sh
#
# Script para atualizar o sistema automaticamente.
# Pode ser executado manualmente ou pelo cron,
# bastando apenas copiar para /etc/cron.hourly
# para ser executado de hora em hora.
#
#
#
# Eduardo Carvalho, Novembro de 2011
#
#
# Versão v0.2 2011-11-20
# - adicionada a função Debug
# - adicionadas chaves
# - suporta mensagens coloridas
# - adicionado autoclean
# - programa não aceita argumentos
#
# Versão v0.3 2011-11-21
# - adicionado autoremove
#
#
CONFIRMA="1" # Atualiza sem pedir confirmação: 0 desliga, 1 liga
CORRIGE="1" # Corrige dependências quebradas: 0 desliga, 1 liga
AUTOCLEAN="0" # Ativa autoclean: 0 desliga, 1 liga
AUTOREMOVE="0" # Ativa autoremove: 0 desliga, 1 liga
OPCAO="" # Argumentos que serão passados aos comandos de atualização
DEPURAR="0" # Modo de depuração(debug): 0 desliga, 1 liga
EDITANDO="0" # Modo de edição do programa: 0 desliga, 1 liga
USAR_CORES="1" # Utilizar mensagens coloridas: 0 desliga, 1 liga
function cor {
if [ "$USAR_CORES" = "1" ]; then
case $1 in
# Define as cores que podem ser utilizadas
off|OFF) echo -n '[0m';;
preto|PRETO) echo -n '[1;30m';;
vermelho|VERMELHO) echo -n '[1;31m';;
verde|VERDE) echo -n '[1;32m';;
amarelo|AMARELO) echo -n '[1;33m';;
azul|AZUL) echo -n '[1;34m';;
magenta|MAGENTA) echo -n '[1;35m';;
ciano|CIANO) echo -n '[1;36m';;
branco|BRANCO) echo -n '[1;37m';;
*) ;;
esac
fi
}
function Debug {
if [ "$DEPURAR" = "1" ]; then
cor AZUL # Define uma cor padrão para as mensagens de depuração
echo -e "-----{ $*"
cor OFF
fi
}
if [ "$#" -ne 0 ]; then # Finaliza execução caso seja passado algum argumento
cor VERMELHO
echo -e "Erro: esse programa não aceita argumentos"
cor OFF && exit 1
fi
if [ "$CONFIRMA" = "1" ]; then
OPCAO="$OPCAO""y" # Adiciona "y", sim para todas as perguntas
fi
if [ "$CORRIGE" = "1" ]; then
OPCAO="$OPCAO""f" # Adiciona "f", corrigir depêndencias quebradas
fi
Debug "Opções resultante: [-$OPCAO]"
#---------- INICIA ATUALIZAÇÃO ----------#
if [ "$EDITANDO" = "0" ]; then
Debug "Executantdo UPDATE: "
apt-get "-$OPCAO" update && cor VERDE && echo "<< UPDATE CONCLUÍDO >>" && cor OFF
Debug "Executantdo UPGRADE: "
apt-get "-$OPCAO" upgrade && cor VERDE && echo "<< UPGRADE CONCLUÍDO >>" && cor OFF
Debug "Executantdo DIST-UPDATE: "
apt-get "-$OPCAO" dist-upgrade && cor VERDE && echo "<< DIST-UPGRADE CONCLUÍDO >>" && cor OFF
if [ "$AUTOCLEAN" = "1" ]; then
Debug "Executantdo AUTOCLEAN: "
apt-get "-$OPCAO" autoclean && cor VERDE && echo "<< AUTOCLEAN CONCLUÍDO >>" && cor OFF
fi
if [ "$AUTOREMOVE" = "1" ]; then
Debug "Executantdo AUTOREMOVE: "
apt-get "-$OPCAO" autoremove && cor VERDE && echo "<< AUTOREMOVE CONCLUÍDO >>" && cor OFF
fi
fi