Facilitando algumas tarefas no CentOS 7
Publicado por Bruno Ricardo Rodrigues (última atualização em 09/08/2016)
[ Hits: 7.579 ]
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
arrcomb: Gerando Arranjos e Combinações
Claro 3g Sony Ericsson md300 script conexao REVISAO 3
Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Debian 13 "trixie&... lançado! (44)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)