Facilitando algumas tarefas no CentOS 7
Publicado por Bruno Ricardo Rodrigues (última atualização em 09/08/2016)
[ Hits: 7.422 ]
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 que envia email para um Relay sem autenticação.
Biblioteca de funções de manipulação de arquivos CSV para shell script
Backup individual de contas no ZIMBRA MAIL
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta