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.645 ]
É 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 para compactar e descompactar arquivos
Instalação do Telegram Desktop via shell script
ZPenBoot - Gravando imagem ISO em um pendrive
Nenhum comentário foi encontrado.
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Conselho distribuiçao brasileira (5)
archlinux resolução abaixou após atualização (15)
Não consigo instalar distro antiga no virtualbox nem direto no hd (33)









