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.148 ]
É 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>
Baixando arquivos do Megaupload
Cálculo de determinantes de matrizes de ordem 2 e 3
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando Zoom Client no Ubuntu 24.04 LTS
Instalando Zoom Client no Fedora 40
Instalando Navegador Firefox no Debian 12
Bloqueando propagandas no Youtube e outros sites com o uBlocker Origin
Sistema da Coréia do Norte - Red Star OS (58)
Dificuldade em ler binário (12)
Em que pasta/arquivo ficam as configurações das janelas em derivados d... (2)