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.670 ]
É 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>
Script de compilação automatica do GCC
BKP Completo Sem compactação (com exclusao)
Cálculo de área de cobertura de toner/tinta em uma impressão
Rastreando suas encomendas dos Correios
Nenhum comentário foi encontrado.
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Manutenção básica para Gentoo Linux (com script)
Conheça o Zashterminal, um terminal moderno com IA
DOOM Carniceiro: rode o Meatgrinder com uzdoom (Gentoo e Ubuntu)
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)









