Automatizar a criação de domínios, sites e usuários de FTP
Publicado por Fernando Leonid Careaga Camelo (última atualização em 11/04/2020)
[ Hits: 2.496 ]
É um script em bash que tem como objetivo criar domínios, site web e FTP, além dos usuários para utilização do FTP. Os domínios são passados como argumento por meio de um arquivo texto.
O script é dividido em 4 arquivos:
- criarDominio.sh
- criarSite.sh
- criarFTP.sh
- criarDSF.sh
E depende de 3 arquivos que são utilizados como base para a configuração dos respectivos serviços:
- db.modelo
- conf.modelo
- html.modelo
Esse script foi criado para fins didáticos, ou seja, com objetivo de demostrar a importância dos scripts no dia a dia dos profissionais de redes. Por esse motivo estão divididos em partes, onde dividimos os problema em pequenos soluções que juntas resolvem o necessário.
A ideia de compartilhar e ajudar quem está começando e ser ajudado com sugestões de melhorias e funcionalidades mais adequadas.
Arquivos disponíveis também no github:
https://github.com/fernandoleonid/servicosredes/
# Arquivo criarDominio.sh #!/bin/bash nomeDominio=$1 echo " zone \"$nomeDominio\" { type master; file \"/etc/bind/db.$nomeDominio\"; }; " >> /etc/bind/named.conf.default-zones cp db.modelo /etc/bind/db.$nomeDominio sed -i s/localhost/$nomeDominio/g /etc/bind/db.$nomeDominio systemctl restart bind9 ################################################## # Arquivo criarSite.sh #!/bin/bash nomeDominio=$1 cp conf.modelo "/etc/apache2/sites-available/$nomeDominio.conf" sed -i s/localhost/$nomeDominio/g "/etc/apache2/sites-available/$nomeDominio.conf" mkdir "/var/www/$nomeDominio" cp html.modelo "/var/www/$nomeDominio/index.html" sed -i s/localhost/$nomeDominio/g "/var/www/$nomeDominio/index.html" a2ensite $nomeDominio.conf systemctl reload apache2 ################################################## # arquivo criarFTP.sh #!/bin/bash dominio=$1 usuario=$(echo $1 | cut -d. -f1) useradd $usuario -p $(openssl passwd '123') -d /var/www/$dominio chown $usuario.$usuario /var/www/$dominio ################################################## # arquivo criarDSF.sh #!/bin/bash for dominio in $(cat listadominios.txt) do ./criarDominio.sh $dominio ./criarSite.sh $dominio ./criarFTP.sh $dominio done ################################################## # Arquivos modelo para os respectivos serviços ################################################## # db.modelo $TTL 86400 @ IN SOA ns1.localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS ns1.localhost. ns1 IN A 10.0.100.2 www IN A 10.0.100.2 ftp IN A 10.0.100.2 ################################################## # conf.modelo <VirtualHost *:80> ServerName www.localhost ServerAdmin webmaster@localhost DocumentRoot /var/www/localhost </VirtualHost> ################################################## # html.modelo <html> <head> <title> localhost </title> <meta charset="utf-8"> </head> <body bgcolor=localhost> <h1> Site em construção - localhost </h1> </body> </html>
Renomear legendas srt de filmes e séries
Enviar gráficos 2D pela janela de chat no Kopete
Monta Pen-Drive Windows no Linux
Shell Script para criar chave ssh e logar no servidor sem digitar senha
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)
Rust é o "C da nossa geração"? (7)
Ubuntu com problemas no áudio (3)
Debian 13 "trixie&... lançado! (44)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)