Facilitando algumas tarefas no CentOS 7
Publicado por Bruno Ricardo Rodrigues (última atualização em 09/08/2016)
[ Hits: 7.508 ]
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
Pequeno, simples mas interessante chat desenvolvido totalmente em shell script.
Máquina Virtual no Linux KDu4 ou outras distros / remasters
mailnow - Envia mensagens pelo shell
Nenhum comentário foi encontrado.
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Autenticação necessária. um aplicativo quer acesso ao chaveiro "c... (0)
Atalhos duplicados (sobras de instalações anteriores) (0)
Copiar Layout do Teclado para aplicar em outra Distribuição (9)