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.464 ]
É 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>
Backup Remoto com rsync, automatico, para varias maquinas, sem senha.
Simulado para provas LPI nível 1
Compactação do relatório do Squid/Sarg
Renomear legendas srt de filmes e séries
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (5)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)
Pastas da raiz foram para a área de trabalho (4)