Configura tudo-em-1

Publicado por julio cesar fais (última atualização em 03/02/2011)

[ Hits: 4.575 ]

Homepage: juliovarginha.blogspot.com

Download julio_full.sh




Várias opções: configuração de DNS, permissões, rede, instalação de Java e flash, manipulação de imagens, codificação, impressoras... e mais!

  



Esconder código-fonte

#!/bin/bash
############################################### FIM #################################################
#script Júlio César Fais - 29 Dezembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Imagemagick, dd

###########verifica se o usuario é root##################
#se for root retorna 0
#se for usuario normal retorna 1000
userid=$(id -u)
if [ $userid = 1000 ]; then
`zenity --warning --text "Não Esta Sendo Executado Como Administrador (root)!" --title "AVISO DO JULIO!!!"`
fi
if [ $userid = 0 ]; then
`zenity --warning --text "Cuidado Script Sendo Executado Como Administrador (root)!" --title "AVISO DO JULIO!!!"`
fi

######################################### inicio da função visualizar impressora instalada (20)
function function_visualizar () {
a=$(lpstat -p -d;lpq)
zenity --info --text "$a"
}

#########################################inicio da função impressora padrão (19)
function function_padrao () {
`zenity --warning --text "Execute Como Administrador (root)!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será a Padrão" --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

/usr/sbin/lpadmin -d $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
}

#########################################Inicio da função remover impressora (18)
function function_remover () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será Removida" --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

/usr/sbin/lpadmin -x $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
}

##########################################inicio da função CANCELAR TRABALHOS E INICIAR IMPRESSORA (17)
function function_canc () {
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

cancel -a $nomelocal
/usr/bin/enable $nomelocal
/usr/sbin/accept $nomelocal
lpadmin -p $nomelocal -E
}

##########################################inicio da função imprimir arquivo (16)
function function_imprimir () {

imp=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

arquivo=$(zenity --file-selection --title "Escolha um Arquivo.")
if [ $? == 1 ]; then
exit
fi

lp -d $imp $arquivo &> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"

#outro comando idêntico=> lpr -P $imp $arquivo
}

###########################################inicio da função impressora remota windows (15)
function function_smb () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
if [ $? == 1 ]; then
exit
fi

nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

ipmicro=$(zenity --entry --text="Digite o IP do Micro com a Impressora Compartilhada..." --title="Ex.: 192.168.1.x" --width=300)
if [ $? == 1 ]; then
exit
fi

nomecompartilhado=$(zenity --entry --text="Digite o Nome da Impressora (Compartilhado)" --title="Atenção Nome Compartilhado" --width=300)
if [ $? == 1 ]; then
exit
fi

driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`
if [ $? == 1 ]; then
exit
fi

/usr/sbin/lpadmin -p $nomelocal -E -v smb://$ipmicro/$nomecompartilhado -m $driverlocal

zenity --info --text "A Impressora $nomelocal Foi Instalada!."
}

###########################################Início da função impressora paralela (14)
function  function_paralela () {
zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"
nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`
if [ $? == 1 ]; then
exit
fi

/usr/sbin/lpadmin -p $nomelocal -E -v parallel:/dev/lp0 -m $driverlocal


zenity --info --text "A Impressora $nomelocal Foi Instalada!."
clear
}

###########################################inicio da função instalar impressora geral (13)
function function_geral () {
`zenity --warning --text "Execute Como root, a seguir aparecerão seus dispositivos,anote o que for Necessário...Aguarde" --title "AVISO DO JULIO!!!"`
if [ $? == 1 ]; then
exit
fi

a=$(lpinfo -v) &> /tmp/2345678.txt
b=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
disp=$(zenity --entry --text="Ex.: socket://10.1.1.1:9100, USB, HTTP://10.1.1.1:631/printers/imp." --title="Digite Caminho/Nome do Dispositivo" --width=300)
if [ $? == 1 ]; then
exit
fi

j=$(zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/  --title "Escolha o Driver (.ppd)") 
if [ $? == 1 ]; then
exit
fi
mkdir /tmp/jj
cp $j /tmp/jj
cd /tmp/jj
gzip -d *
driverlocal=$(cp /tmp/jj/*.ppd)

nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
if [ $? == 1 ]; then
exit
fi

lpadmin -p $nomelocal -E -v $disp -m $driverlocal -u allow:all -o printer-is-shared=true

mv /tmp/jj/*.ppd /etc/cups/ppd/$nomelocal.ppd
/etc/init.d/cups stop
/etc/init.d/cups start
/etc/init.d/cupsys stop
/etc/init.d/cupsys stop
a=$(lpstat -p -d;lpq)

zenity --info --text "A Impressora $nomelocal Foi Instalada!."
zenity --info --text "$a"

rm -fr /tmp/jj

}

########################################################### inicio da funcão renomear mauiscula-minuscula(12)
function function_mai () {

PASTA=$(zenity --directory --file-selection --title "Escolha a Pasta")
if [ $? == 1 ]; then
exit
fi
[ $? -ne 0 ] && --zenity --text="Esc ou CANCELAR apertado" --error && exit
cd $PASTA
for foo in *; do mv $foo `echo $foo | tr /[A-Z]/ /[a-z]/` ; done
}

############################################################# inicio da função alterar codificação utf-8 > iso-8859-1 (11)
function function_utf () {

PASTA=$(zenity --directory --file-selection --title "Escolha a Pasta")
if [ $? == 1 ]; then
exit
fi
[ $? -ne 0 ] && --zenity --text="Esc ou CANCELAR apertado" --error && exit
cd $PASTA

NOME="muda_codificacao"
VERSAO="0.1, 27 Feb 2007"
AUTOR="Jonh Wendell <wendell@bani.com.br>"

uso() {
  echo "$NOME $VERSAO, $AUTOR"
  echo
  echo "Muda a codificação dos arquivos de iso para utf"
  echo "(Renomeia os arquivos, na verdade)"
  echo
  echo "Uso:"
  echo " `basename $0` <pasta onde estao os arquivos>"
  echo
  echo "Exemplo: Para renomear os arquivos na pasta local, use:"
  echo " `basename $0` ./"
  echo

  exit 1;
}

PASTA=$PASTA
[ "x$PASTA" == "x" -o "x$PASTA" == "x--help" ] && uso

cd $PASTA 2>/dev/null || { echo "Erro entrando na pasta $PASTA" ; exit 1; }

for i in *; do
 NOVO=`echo "$i" | iconv -f utf-8 -t iso-8859-1`
  if [ "$NOVO" != "$i" ]; then
    mv "$i" "$NOVO"
  fi
done

}

########################################################### inicio da função alterar codificação iso-8859-1 > utf-8 (10)
function function_iso () {
PASTA=$(zenity --directory --file-selection --title "Escolha a Pasta")
if [ $? == 1 ]; then
exit
fi
cd $PASTA

NOME="muda_codificacao"
VERSAO="0.1, 27 Feb 2007"
AUTOR="Jonh Wendell <wendell@bani.com.br>"

uso() {
  echo "$NOME $VERSAO, $AUTOR"
  echo
  echo "Muda a codificação dos arquivos de iso para utf"
  echo "(Renomeia os arquivos, na verdade)"
  echo
  echo "Uso:"
  echo " `basename $0` <pasta onde estao os arquivos>"
  echo
  echo "Exemplo: Para renomear os arquivos na pasta local, use:"
  echo " `basename $0` ./"
  echo

  exit 1;
}

PASTA=$PASTA
[ "x$PASTA" == "x" -o "x$PASTA" == "x--help" ] && uso

cd $PASTA 2>/dev/null || { echo "Erro entrando na pasta $PASTA" ; exit 1; }

for i in *; do
 NOVO=`echo "$i" | iconv -f iso-8859-1 -t utf-8`
  if [ "$NOVO" != "$i" ]; then
    mv "$i" "$NOVO"
  fi
done
}
#########################################inicio da função REDIMENSIONANDO VÁRIOS IMAGENS DE UMA SÓ VEZ (9)
function function_redimensionarfull () {
resolucao=$(zenity --entry --text="Digite a Resolução Das Imagens Desejada." --title="Ex.: 1024x768" --width=300)
if [ $? == 1 ]; then
exit
fi

qualidade=$(zenity --entry --text="Digite a qualidade das Imagens Desejada ( 50 = 50% )" --title="Ex.: 100" --width=300)
if [ $? == 1 ]; then
exit
fi

local=$(zenity --directory --file-selection --title "Escolha a Pasta com as Imagens")
if [ $? == 1 ]; then
exit
fi
#julio=$(zenity --entry --text="Digite a Extensão das imagens." --title="Ex.: jpg png jpeg)
convert -resize $resolucao -quality $qualidade $local/* $local/fotos-redimensionadas &> /tmp/2345678.txt
#2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
rm /tmp/2345678.txt
exit 0
}

#########################################inicio da função REDIMENSIONAR UMA IMAGEM (8)
function function_redone () {

resolucao=$(zenity --entry --text="Digite a Resolução Das Imagens Desejada." --title="Ex.: 1024x768" --width=300)
if [ $? == 1 ]; then
exit
fi

qualidade=$(zenity --entry --text="Digite a qualidade das Imagens Desejada ( 50 = 50% )" --title="Ex.: 100" --width=300)
if [ $? == 1 ]; then
exit
fi

imagem=$(zenity --file-selection --title "Escolha um Arquivo.")
if [ $? == 1 ]; then
exit
fi

convert -resize $resolucao -quality $qualidade $imagem $imagem-redimensionada.jpg  &> /tmp/2345678.txt

a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
rm /tmp/2345678.txt

exit 0

}

################################################### inicio da função BKP de configuração(7)
function function_bkp () {

pasta=`zenity --directory --file-selection --title "Escolha a Pasta Para Salvar os Aquivos de Configuração"`
if [ $? == 1 ]; then
exit
fi
userr=$(zenity --entry --text="Digite Qual o Usuario Esta o Backup" --title="Ex.: kurumin, prefeitura" --width=300)
if [ $? == 1 ]; then
exit
fi

scp /etc/network/interfaces $pasta 
scp /etc/cups/printers.conf $pasta
scp /home/$userr/.kde/share/config/kopeterc $pasta
scp -r /home/$userr/.mozilla $pasta
scp -r /home/$userr/.mozilla-thunderbird $pasta
scp -r /home/$userr/.thunderbird $pasta
scp -r /home/$userr/.firefox $pasta
scp -r /home/$userr/.mozilla-firefox $pasta
scp -r /home/$userr/.putty $pasta
scp -r /etc/rc.local $pasta                        

konqueror $pasta

clear

}

#########################################inicio da função extrair pacotes deb (6)
function  function_deb () {

e=$(zenity --directory --file-selection  --title "Escolha a pasta onde estao os arquivos .DEB")
if [ $? == 1 ]; then
exit
fi

cd $e/
dpkg -i *.deb
sleep 2
zenity --info --text="Os Arquivos Foram Extraidos."
exit 0

}

##################################inicio da função instalar flash (5)
function function_flash () {

flash=`zenity --file-selection --title "Escolha o Flash Player (obs.: tem que estar Descompactado)"`
if [ $? == 1 ]; then
exit
fi

d=`zenity  --directory --file-selection  --title "Escolha a pasta plugins do navegador.Ex.: /usr/lib/firefox-3.6.7/plugins/"`
if [ $? == 1 ]; then
exit
fi

cp -i -r  $flash $d
zenity --info --text="Reinicie o Navegador ...."
}
############################Inicio da função instalar java (4)
function function_java () {

java=$(zenity --file-selection --title="Selecione o JAVA")
if [ $? == 1 ]; then
exit
fi

./$java
zenity --info --text "Vamos adicionar um link pro navegador."
c=`zenity  --directory --file-selection  --title "Escolha a pasta plugins do navegador.Ex.: /usr/lib/firefox-3.6.7/plugins/"`
if [ $? == 1 ]; then
exit
fi

d=`zenity  --file-selection  --title "Escolha o plugin do java (ja instalado)"`
if [ $? == 1 ]; then
exit
fi

cd $c/
ln -s $d
zenity --info --text="OK! Tudo Pronto! Vamos Testar ...."
firefox 'http://www.java.com/pt_BR/download/help/testvm.xml'
}

################################inicio da função configurar rede (3)
function function_rede () {
#################
   inicio (){
   echo 1 - IP Fixo
   echo 2 - DHCP
   echo 3 - RESTAURAR BKP
   echo 4 - IP TEMPORARIO
   read var
   
   case $var in
   1) fixo;;
   2) dhcp;;
   3) bkp;;
   4) temp;;
   *) clear; echo 'saindo do programa'; exit;;
   esac
   }
##################   
   fixo (){
   echo vc escolheu IP Fixo
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`
   sleep 1
   clear
   echo 'Adicione suas interfaces...
   Ex.: eth0 eth0:0 eth0:1 eth0:2...
   obs.: use a 1ª interface para internet...'
   sleep 2
   read int
   echo "Qual Ip da 1ª interface?"
   read ipa
   echo "Qual a Mascara da 1ª inetrface?"
   read masc
   echo "Qual o Gateway da 1ª interface?"
   read gw
   sleep 1
   echo "auto lo $int" > /etc/network/interfaces
   echo "iface lo inet loopback" >> /etc/network/interfaces
   echo "iface $int inet static" >> /etc/network/interfaces
   echo "address $ipa" >> /etc/network/interfaces
   echo "netmask $masc" >> /etc/network/interfaces
   echo "gateway $gw" >> /etc/network/interfaces
   echo "#configurado via script => JULIO 4.0<= julio.tecnico@bol.com.br" >> /etc/network/interfaces

   clear
/etc/init.d/networking stop
/etc/init.d/networking start
echo "! Pronto. Sua Rede Foi Configurada com sucesso."
sleep 4
   }
##################   
   dhcp (){
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`
   echo vc escolheu IP por DHCP
   sleep 2
   clear
echo 'Adicione sua interface...
   Ex.: eth0, eth1, wlan0...'
sleep 1
read int
echo "auto lo $int" > /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces
echo "iface $int inet dhcp" >> /etc/network/interfaces
echo "#configurado via script => JULIO 4.0<= julio.tecnico@bol.com.br" >> /etc/network/interfaces
echo "Configurando...Aguarde..."
sleep 2
clear
/etc/init.d/networking stop
/etc/init.d/networking start
echo "! Pronto. Sua Rede DHCP Foi Configurada com sucesso. Veja:"
sleep 4

cat /etc/network/interfaces
   sleep 5
   clear

   }
###################   
   bkp (){
`zenity --warning --text "ATENÇAO ESTA AÇAO IRA SOBRESCREVER O ARQUIVO ORIGINAL!!!" --title "AVISO DO JULIO!!!"`   
echo 'Qual o Arquivo?'
b=`zenity --file-selection --title "Escolha o arquivo(interfaces)"`
if [ $? == 1 ]; then
exit
fi

sleep 2
cp "$b" /etc/network/
clear
echo "Reiniciando a Rede..."
sleep 1
/etc/init.d/networking stop
/etc/init.d/networking start
clear
echo "OK!"
sleep 2

   }
####################

      temp (){

echo "Qual a interface?"
sleep 2
read dd
echo "Qual o ip?"
sleep 2
read aa
echo "Qual a Mascara?"
sleep 2
read bb
echo "Qual o Gateway?"
sleep 2
read cc

ifconfig $dd $aa netmask $bb up
route add default gw $cc

}
  inicio

clear
}

###################################inicio da função permissões (2)
function function_permissao () {

sudo=$(zenity --entry --text="Digite Qual usuario voce quer Habilitar o sudo?" --title="Ex.: kurumin, prefeitura" --width=300)
if [ $? == 1 ]; then
exit
fi

echo "
$sudo ALL=(ALL) ALL
$sudo ALL=NOPASSWD: ALL
#configurado via script => JULIO 4.0<= julio.tecnico@bol.com.br
" >> /etc/sudoers

zenity --info --text "Concluido! O Usuario $sudo ja possui permissao de Administrador."
}

#####################################Início da função dns padrão (1)
function  function_dns () {

echo "
nameserver 208.67.222.222
nameserver 8.8.8.8
#configurado via script => JULIO 4.0<= julio.tecnico@bol.com.br
" > /etc/resolv.conf
clear

cat /etc/resolv.conf
sleep 3
zenity --info --text "DNS Configurado!."
clear

}
################################################## MENU ######################################################################


while true; do
  acao="$(zenity --width=410 --height=610 --list --column "        Algumas Opções Só Funcionam Como Root." --title=" Script Júlio Fais 4.0" \
        " 1) ADICIONAR DNS PADRAO" \
   " 2) CONFIGURAR PERMISSÕES - /etc/sudoers" \
   " 3) CONFIGURAR REDE" \
   " 4) INSTALAR JAVA" \
   " 5) INSTALAR FLASH PLAYER" \
   " 6) EXTRAIR PACOTES" \
   " 7) BKP DE CONFIGURAÇÕES" \
    " 8) REDIMENSIONAR UMA IMAGEM" \
   " 9) REDIMENSIONAR VARIAS IMAGENS" \
   "10) CODIFICAÇÃO iso-8859-1 > utf-8" \
   "11) CODIFICAÇÃO utf-8 > iso-8859-1" \
   "12) RENOMEAR ARQUIVOS MAIUSCULA > MINUSCULA" \
   "13) INSTALAR IMPRESSORA GERAL" \
     "14) ADICIONAR IMPRESSORA PARALELA LOCAL" \
   "15) ADICIONAR IMPRESSORA REMOTA NO WINDOWS" \
   "16) IMPRIMIR UM ARQUIVO" \
   "17) CANCELAR TRABALHOS E INICIAR IMPRESSORA" \
   "18) REMOVER IMPRESSORA" \
   "19) DEFINIR IMPRESSORA COMO PADRÂO" \
   "20) VISUALIZAR IMPRESSORAS INSTALADAS" \
   "SAIR")"

case $acao in

" 1) ADICIONAR DNS PADRAO")
function_dns ;;

" 2) CONFIGURAR PERMISSÕES - /etc/sudoers")
function_permissao ;;

" 3) CONFIGURAR REDE")
function_rede ;;

" 4) INSTALAR JAVA")
function_java ;;

" 5) INSTALAR FLASH PLAYER")
function_flash ;;

" 6) EXTRAIR PACOTES" )
function_deb ;;

" 7) BKP DE CONFIGURAÇÕES" )
function_bkp ;;

" 8) REDIMENSIONAR UMA IMAGEM" )
function_redone ;;

" 9) REDIMENSIONAR VARIAS IMAGENS" )
function_redimensionarfull ;;

"10) CODIFICAÇÃO iso-8859-1 > utf-8" )
function_iso ;;

"11) CODIFICAÇÃO utf-8 > iso-8859-1" )
function_utf ;;

"12) RENOMEAR ARQUIVOS MAIUSCULA > MINUSCULA" )
function_mai ;;

"13) INSTALAR IMPRESSORA GERAL")
function_geral ;;

"14) ADICIONAR IMPRESSORA PARALELA LOCAL")
function_paralela ;;

"15) ADICIONAR IMPRESSORA REMOTA NO WINDOWS")
function_smb ;;

"16) IMPRIMIR UM ARQUIVO")
function_imprimir ;;

"17) CANCELAR TRABALHOS E INICIAR IMPRESSORA")
function_canc ;;

"18) REMOVER IMPRESSORA")
function_remover ;;

"19) DEFINIR IMPRESSORA COMO PADRÂO" )
function_padrao ;;

"20) VISUALIZAR IMPRESSORAS INSTALADAS" )
function_visualizar ;;


*) exit ;;

esac

done


############################################### FIM #################################################
#script Júlio César Fais - Imagemagick - 29 Dezembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Imagemagick, dd

Scripts recomendados

Download automatizado de instaladores para fileserver e afins

Faz backup do MySQL e envia para FTP

analise

backup interativo em dialog

Cálculo de determinantes de matrizes de ordem 2 e 3


  

Comentários
[1] Comentário enviado por removido em 06/02/2011 - 17:14h

parabens,muito util


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts