Facilitando algumas tarefas no CentOS 7
Publicado por Bruno Ricardo Rodrigues (última atualização em 09/08/2016)
[ Hits: 7.740 ]
Homepage: Não Possuo
Olá pessoal,
Passei as últimas horas me dedicando a criar um script para automatizar/facilitar algumas tarefas que realizo com freqüência no CentOS 7, tais como Firewall, SElinux, hostname, Configuração de interface de rede entre outras. Nada impede de executar o script em outras versões do CentOS ou outras distros, porém até o momento somente testei no CentOS 7.
Como para mim foi e será muito útil, tive a ideia de divulgar aqui no VOL, quem sabe não ajudo mais alguém :)
#!/bin/bash
#### DEPENDÊNCIAS ####
type dialog 1> /dev/null
if [ "$?" = 0 ]; then
echo "Dependencias Instaladas..."
else
echo "Instalando Dependencias!"
yum install -y dialog
fi
#### FUNÇÕES ####
sistema_operacional_func()
{
SO=$(dialog --stdout --title 'Sistema Operacional' --menu 'Escolha seu Sistema Operacional:' 0 0 0 1 'CentOS 7')
menu_func
}
hostname_func()
{
HostName=$(dialog --stdout --title 'Hostname' --inputbox 'Informe o novo HOSTNAME:' 0 0)
[ $? -eq 1 ] && menu_func
echo $HostName > /etc/hostname
/bin/hostname $HostName
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
interfaces_rede_func()
{
dinamico()
{
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE
cat > $FILE << EOM
DEVICE=$i
BOOTPROTO=dhcp
ONBOOT=yes
EOM
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0
/etc/init.d/network restart
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
statico()
{
IP=$( dialog --stdout --inputbox 'Informe o IP:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
MASK=$( dialog --stdout --inputbox 'Informe a Máscara:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
GATEWAY=$( dialog --stdout --inputbox 'Informe o Gateway:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
DNS1=$( dialog --stdout --inputbox 'Informe o DNS Primário:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
DNS2=$( dialog --stdout --inputbox 'Informe o DNS Secundário:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
dialog --title 'Informações de Rede' --yesno '\nIPADDR='$IP'\nNETMASK='$MASK'\nGATEWAY='$GATEWAY'\nDNS Primário='$DNS1'\nDNS Secundario='$DNS2'\n\nAs informações estão corretas?' 0 0
[ $? -eq 1 ] && interfaces_rede_func
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE
cat > $FILE << EOM
DEVICE=$INTERFACE
TYPE=Ethernet
IPADDR=$IP
NETMASK=$MASK
GATEWAY=$GATEWAY
ONBOOT=yes
EOM
echo "nameserver $DNS1" > /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0
/etc/init.d/network restart
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
INTERFACES=`ip a | grep \< | cut -d ':' -f 2`
COMANDO="dialog --stdout --title 'Interfaces de Rede' --menu 'Selecione a interface a ser editada: ' 0 0 0 "
for i in $INTERFACES
do
if [ "$i" != "lo" ]; then
COMANDO=$COMANDO"'$i' '' "
fi
done
INTERFACE=$(eval $COMANDO)
[ $? -eq 1 ] && menu_func
RESPOSTA=$(dialog --stdout --title 'Modo de Operação' --menu 'Selecione o modo de operação ' 0 40 0 \
1 'Static' \
2 'Dinâmico')
case $RESPOSTA in
1) statico ;;
2) dinamico ;;
*) interfaces_rede_func ;;
esac
}
nome_interfaces()
{
INTERFACES=`ip a | grep \< | cut -d ':' -f 2`
sed -i 's/rhgb quiet/rhgb quiet net.ifnames=0 biosdevname=0/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
INT=0
for i in $INTERFACES
do
if [ "$i" != "lo" ]; then
sed -i "s/$i/eth$INT/g" /etc/sysconfig/network-scripts/ifcfg-$i
mv /etc/sysconfig/network-scripts/ifcfg-$i /etc/sysconfig/network-scripts/ifcfg-eth$INT
INT=`expr $INT + 1`
fi
done
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso! NÃO ESQUEÇA DE REINICIAR AO SAIR!' 5 70
}
firewall_func()
{
limpa_regra_func()
{
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
}
inicializacao_func()
{
limpa_regra_func
cat > /etc/init.d/firewall.sh << EOM
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
EOM
chmod +x /etc/init.d/firewall.sh
chmod +x /etc/rc.d/rc.local
echo "/etc/init.d/firewall.sh" >> /etc/rc.d/rc.local
}
MENU=$(dialog --stdout --title 'Firewall' --menu 'Selecione uma opção:' 0 0 0 \
1 'Limpar regras de Fiewall' \
2 'Adicionar script para limpar regras de Firewall na inicialização do sistema' \
3 'Voltar ao Menu Anterior')
case $MENU in
1) limpa_regra_func ;;
2) inicializacao_func ;;
3) menu_func ;;
*) menu_func ;;
esac
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
firewall_func
}
selinux_func()
{
MODO_ATUAL=`cat /etc/selinux/config | grep ^SELINUX= | cut -d '=' -f 2`
echo $MODO_ATUAL
MENU=$(dialog --stdout --title 'Menu' --menu 'Modo Atual: '$MODO_ATUAL'\nNovo Modo:' 0 0 0 \
1 'Disabled (Necessário Reiniciar)' \
2 'Permissive' \
3 'Enforcing (Necessário Reiniciar)' \
4 'Voltar ao Menu Anterior')
case $MENU in
1) sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config ;;
2) sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config; setenforce 0 ;;
3) sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config ;;
4) menu_func ;;
*) menu_func ;;
esac
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
exit_func()
{
dialog --title 'Reiniciar' --yesno '\nVocê deseja reiniciar o sistema operacional?' 0 0
if [ $? -eq 1 ]; then
clear
exit
else
shutdown -r now
fi
}
menu_func()
{
MENU=$(dialog --stdout --title 'Menu' --menu 'Selecione uma opção:' 0 0 0 \
1 'Alterar Hostname' \
2 'Interfaces de Rede' \
3 'Firewall' \
4 'SElinux' \
5 'Alterar o nome das interfaces de rede para ethX' \
6 'Alterar Sistema Operacional' \
7 'Exit')
case $MENU in
1) hostname_func ;;
2) interfaces_rede_func ;;
3) firewall_func ;;
4) selinux_func ;;
5) nome_interfaces ;;
6) sistema_operacional_func ;;
7) exit_func ;;
*) menu_func ;;
esac
}
#### INICIO DO PROGRAMA ####
dialog --title 'Obrigado!' --msgbox 'Designed and Developed by Bruno Ricardo Rodrigues.' 5 55
sistema_operacional_func
menu_func
Script de Backup para FITA DAT usando "afio"
olhaMeuDesktop 0.1 - Aplicativo para gravar Área de Trabalho
Veja os 10 últimos tópicos das comunidades
Trocar senha de root NO BRACO remotamente
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Apagar Todo o Histórico do Terminal
Linux Mint: Zram + Swapfile em Btrfs
Internet não funciona corretamente no Linux (3)
Pendrive do Ubuntu 24.04 travando ao tentar fazer a instalação dual bo... (4)
Instalar Dual Boot, Linux+Windows. (14)
queria saber de uma coisa sobre o steam e derivados (3)
tentei instalar o steam pelo terminal, agora ele não abre (3)









