Projeto Integrador - 2010.2 - Equipe Ritz
Dia: 22/11/2010 - 1º Dia
- Apresentação do projeto pelo professor Ederson Torresini.
- Criação do nome da equipe: Centro comercial Ritz.
Dia: 23/11/2010 - 2º Dia
Serviço final
- 1º - ADSL para os usuários
* DSLAM (ADSL) 8 portas por equipe * DHCP - fornecimento de IP - DHCP com vlan * DNS - subdomínios,pacotes, conteúdo Web * Filtro de conteúdo (pacotes / conteúdos web)
- 2º - Vigilância IP (web com usb)
* Webcam - captura e alguem envia para rede * ferramenta de streaming * sistema de controle de autenticação (PRC)
- 3º - Segurança nos dados
* BACKUP * Filtro de Conteúdo/pacotes - para se proteger e proteger os outros * Redes separadas (VLAN): 1 admin + 1 por cada cliente ADSL
Dia: 24/11/2010 - 3º Dia
Configurações do Servidor
- 80 GB de HD
- 1 GB de Memória RAM
- Processador: AMD Sempron 1.81 GHZ - 32 bits
- Sistema Operacional: Ubuntu Linux Server 9.10
Particionamento do sistema
Partição "Tamanho" Tipo Ponto de montagem
====================================================
/dev/sda1 40GB EXT4 /
/dev/sda2 10GB EXT4 /home
/dev/sda3 26GB EXT4 /var
/dev/sda4 4GB SWAP swap
Configurações de rede
Rede Externa:
IP:200.135.37.100 Mascara: 255.255.255.192 (/26) Broadcast 200.135.37.127
Rede:200.135.37.64/26 1°IP valido: 200.135.37.65 Ultimo IP valido: 200.135.37.126
Gateway:200.135.37.126
Cabeamento
- Foi passado os cabos do Patch Panel do Armário Principal para o Armário Ritz.
- Feitos os pontos de acesso (Tomadas).
Dia: 25/11/2010 - 4º Dia
Cabeamento
- Definido padrão 685-B para todo o cabeamento da equipe Ritz;
- Todos os cabos equipe Ritz categoria 5e;
- Crimpados os conectores RJ-45 Machos em uma das pontas de cada ponto (chão, alto e parede), e fêmeas nas outras pontas;
- Conectato o cabo principal do Patch Panel Equipe Ritz, ao patch panel a (equipe Celtics);
Equipamento
- Recebemos o equipamento DSLAM que ficou disponível para estudo;
Dia: 29/11/2010 - 6º Dia
Cabeamento
- Tivemos problemas nos testes do ponto no chão e do ponto no alto. O ponto de parede passou já no primeiro teste.
- A porta 1 do patch panel inicialmente escolhida para ser a porta de ligação com o armário principal, também deve que ser substituída pela porta 10 pois apresentou problemas nos testes.
- Substituímos os conectores RJ-45 fêmeas dos pontos e refizemos os conectores RJ-45 machos. Todos os pontos, e o patch panel então passaram no teste.
- Fizemos então o acabamento (fixação do patch panel em definitivo no rack, encaixe dos conectores fêmeas nos suportes de chão e de parede, marcação das pontas dos cabos) e depois refizemos todos os testes.
- Todos os pontos e a porta 10 do patch panel foram testados e aprovados.
Instalação dos softwares
DNS
- Instalando o pacote DNS
# aptitude install bind9
- Configurando interfaces - /etc/network/interfaces
auto lo
iface lo inet loopback
#auto eth0
#iface eth0 inet loopback
# The primary network interface
# Interface externa ip 200.135.37.100/26
auto eth0
iface eth0 inet static
address 200.135.37.100
netmask 255.255.255.192
broadcast 200.135.37.127
network 200.135.37.64
gateway 200.135.37.126
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1 dns1.ritz.sj.ifsc.edu.br
dns-search ritz.sj.ifsc.edu.br
# Clientes ADSL
auto vlan3030
iface vlan3030 inet static
address 192.168.30.100
netmask 255.255.255.0
vlan_raw_device_ eth0
# Vlan para rede da Webcan
auto vlan 3031
iface vlan3031 inet static
address 192.168.31.100
netmask 255.255.255.0
vlan_raw_device_ eth0
- Arquivo de configuração dos servidores DNS que o sistema utilizara, no caso é a própria maquina pois ela sera um servidor também DNS - /etc/resolv.conf
search ritz.sj.ifsc.edu.br
nameserver 127.0.0.1
- Configuração DNS - /etc/bind/named.conf.options
options{
//todas as interfaces de rede
listen-on { any; };
//qualquer um pode perguntar
allow-query { any; };
//Quem pode perguntar sobre meus dominios
allow-query-cache { any; };
//Sobre dominio de terceiros, loopback e rede ifsc
allow-recursion { 127.0.0.0/8; 192.168.30.0/24; 192.168.31.0/24; };
};
- Configurando informações de domínio e de seu domínio reverso que no nossa caso é respectivamente "ritz.sj.ifsc.edu.br' - /etc/bind/named.conf.local
//Configuracao de dominio
zone "ritz.sj.ifsc.edu.br" {
type master;
file "/etc/bind/ritz.sj.ifsc.edu.br";
};
- Criando o arquivo "ritz.sj.ifsc.edu.br" dentro da pasta "bind" - /etc/bind/ritz.sj.ifsc.edu.br
; Configuracoes especificas para o dominio ritz.ifsc.edu.br
$TTL 86400
@ IN SOA dns1.ritz.sj.ifsc.edu.br. admin.ritz.sj.ifsc.edu.br. (
2010120201 ; serial
1d ; refresh
1h ; retry
1w ; expire
1d ; negative cache ttl
)
@ IN NS dns1
@ IN A 200.135.37.100
@ IN MX 0 mail.ritz.sj.ifsc.edu.br.
dns1 IN A 200.135.37.100
ns1 IN A 200.135.37.100
mail IN A 200.135.37.100
www IN A 200.135.37.100
smtp IN CNAME mail.ritz.sj.ifsc.edu.br.
pop IN CNAME mail.ritz.sj.ifsc.edu.br.
imap IN CNAME mail.ritz.sj.ifsc.edu.br.
ssl IN CNAME www.ritz.sj.ifsc.edu.br.
cacti IN CNAME www.ritz.sj.ifsc.edu.br.
;prevencao contra SPAM usando pacote spf1
ritz.sj.ifsc.edu.br. IN TXT "v=spf1 mx -all"
- Efetuando testes para a confirmação do funcionamento do DNS
# tail -f /var/log/daemon.log &
# /etc/init.d/bind9 restart
# dig SOA ritz.sj.ifsc.edu.br
Dia: 30/11/2010 - 7º Dia
Cabeamento
- Realizado testes de todos os patch panels e pontos de acesso dos armários das equipes com o armário principal;
- Feito o cabo RJ45/RJ11 que fará a ligação do ponto de acesso com o modem ADSL.
NTP
- Realizando a Instalação do pacote NTP
root@Ritz:~# aptitude install ntp
- Configurado o arquivo /etc/ntp.conf para sincronizar o horário
#Linhas adicionadas para que o ntpd sincronize o horario com os servidores abaixo
#servidor da rnp
server ntp.cais.rnp.br
#servidor "a" do observatorio nacional
server a.ntp.br
#servidor "b" do observatorio nacional
server b.ntp.br
#Restringe o acesso ao servidor ntp apenas a dispositivos da rede local
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.200.0 mask 255.255.255.0 nomodify notrap
- Sincronizando o horário
ntpdate ntp.cais.rnp.br
- Adicionando na /etc/crontab, para sincronizar o horário várias vezes por dia, sem ter alguém para fazer esse trabalho.
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* 7 * * * root ntpdate -s ntp.cais.rnp.br
* 15 * * * root ntpdate -s ntp.cais.rnp.br
* 23 * * * root ntpdate -s ntp.cais.rnp.br
DHCP
- Realizando a Instalação do pacote DHCP
root@Ritz:~# aptitude install dhcp3
- Configurando o arquivo etc/dhcp3/dhcpd.conf
#Integração com os outros serviços
#
# Atualizar alguma informação com origem no DNS? Nenhuma (none).
ddns-update-style none;
#
# O 'log' das atividades do servidor serão registradas pela 'facility' local7 - arquivo /var/log/sys
log
log-facility local7;
# Rede interna: 192.168.100.0/24
subnet 192.168.30.0 netmask 255.255.255.0 {
#
# Faixa de IPs disponÃveis
range 192.168.30.1 192.168.30.100;
#
# Máscara de rede
option subnet-mask 255.255.255.0;
#
#
# Rotas
option routers 192.168.30.100;
#
# Servidores e domÃnios DNS
option domain-name-servers 192.168.30.100;
option domain-name "ritz.sj.ifsc.edu.br";
default-lease-time 3600;
max-lease-time 14400;
SNMP
- Realizando a Instalação do pacote SNMP
root@Ritz:~# aptitude install snmpd
- Configurando o arquivo /etc/snmp/snmpd.conf
rocommunity ritz
syslocation ritz-TI
syscontact root@ritz.sj.ifsc.edu.br
sysservices 72
Contabilização
CACTI
- Baixando o programa cacti
cd /usr/local/src
wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
- Instalando apache2, php5 e mysql-server
aptitude install apache2 php5 mysql-server
- Instalando pacote para guardar dados de gráfico em texto
aptitude install rrdtool
- Descompactando o pacote do cacti
cd /var/www
tar xzf /usr/local/src/cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /cacti
- Reiniciando apache2 para validar as configurações
/etc/init.d/apache2 restart
- Instalando php5-mysql e php5-cli
aptitude install php5-mysql php5-cli
- Entrando no banco de dados e Listando as bases
mysql -uroot -p
mysql> show databases;
- Criando a base do cacti e aplicando privilégio total
mysql> create database cacti;
mysql> grant all privileges on cacti.* to 'cactiadmin'@localhost identified by '********';
mysql> flush privileges;
mysql> quit;
- Configurado login e senha para acesso a base cacti
cd /var/www/cacti
vi include/config.php
(alterar na linha 29 e 30)
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiadmin";
$database_password = "*******";
$database_port = "3306";
- Adicionando na /etc/crontab
*/5 * * * * www-data php /var/www/cacti/poller.php > /dev/null 2>&1
- Aplicando total permissão aos arquivos de log.
root@Ritz:/var/log/cacti# chmod 777 rrd.log
root@Ritz:/var/log/cacti# chmod 777 cacti.log
root@Ritz:/var/log/cacti# chmod 777 poller-error.log
NTOP
- Instalando o pacote
root@Ritz:/var/www# aptitude install ntop
- Atribuindo senha para o administrador
root@Ritz:/var/www# ntop -A
- Rode ntop no servidor e abre um browser com o ip-do-servidor:3000.
Dia: 01/12/2010 - 8º Dia
Servidor
- Configurado o IP externo 200.135.37.100, para acesso remoto e fixado o servidor no RAK.
- Testado o DNS e configurado com o IP externo.
root@Ritz:/home/ritz# /etc/init.d/bind9 restart
* Stopping domain name service... bind9 [ OK ]
* Starting domain name service... bind9 [ OK ]
Dia: 02/12/2010 - 9º Dia
TAREFAS sugeridas pelo Professor Marcelo Sobral.
1) Ativar o link sem-fio (modo ad hoc) - Pensar em como passar a informaação sobre Vlans através do link.
2) Configurar as vlans nos switchs, para estruturar as LANs (as mesas, servidores/dsl)
3) Ativar os links DSL - Decifrar DSL LAN.
DSLAN
- Aberto máquina virtual windows, no qual foi baixado o EMS para gerenciar o DSLAN. - Executado o EMSClient (Menu Iniciar -> Todos os Programas -> EMS Client), e fornecido o IP 192.168.1.101, com usuário root e senha admin123. - Conseguimos abrir a interface do DSLAN e com a ajuda do manual estamos tentando configura-lo.
RADIUS
- Baixando pacote
root@Ritz:~# aptitude install freeradius-mysql mysql-server -y
- Configurando o arquivo /etc/freeradius/radiusd.conf
<codec lang="html4strict"> Descomentar as linhas que aparece "authorize" e "accounting".
- Configurando o arquivo /etc/freeradius/sql.conf
<codec lang="html4strict"> Nas linhas abaixo, coloque os dados do banco de dados. server = "localhost" login = "root" password = "******" </syntaxhighlight>
- Configurando o arquivo /etc/freeradius/clients.conf
<codec lang="html4strict"> cliente dslan { secret= projetoritz shortname=ritz nastype = other } </syntaxhighlight>
- No banco de dados, criando a base de dados radius.
<codec lang="html4strict"> mysql> create database radius; </syntaxhighlight>
- Verificando a tabela criada
<codec lang="html4strict"> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | mysql | | radius | | ritz | | zm | +--------------------+ 6 rows in set (0,00 sec) </syntaxhighlight>
Dia: 03/12/2010 - 10º Dia
- Feito o cabo de interligação do patch panel com o dslan. (cabo manga)
MYSQL
- Baixando pacote
ritz@Ritz:~$ aptitude install mysql
- Logando no banco de dados
ritz@Ritz:~$ mysql -u root -p
- Criando a base de dados ritz
mysql> create database ritz;
- Listando as bases criadas
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti |
| mysql |
| ritz |
+--------------------+
4 rows in set (0,00 sec)
- Usando a base de dados ritz
mysql> use ritz;
- Criando a tabela administrador, com os dados de quem irá administrar a rede, tanto login e senha para entrar na interface gráfica.
mysql> create table administrador (cID INTEGER NOT NULL AUTO_INCREMENT, cNOME VARCHAR(40),
cTELEFONE VARCHAR (20), cLOGIN VARCHAR(40), cSENHA VARCHAR(40), PRIMARY KEY (cID));
- Verificando as informações na tabela administrador
mysql> desc administrador;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| cID | int(11) | NO | PRI | NULL | auto_increment |
| cNOME | varchar(40) | YES | | NULL | |
| cTELEFONE | varchar(20) | YES | | NULL | |
| cLOGIN | varchar(40) | YES | | NULL | |
| cSENHA | varchar(40) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
- Inserindo dados na tabela administrador
mysql> INSERT into administrador (cNOME, cTELEFONE, cLOGIN, cSENHA) VALUES ('Andreia Bunn', '4884588453', 'administrador', 'projetoritz');
- Selecionando a tabela adminsitrador, para verificar os dados cadastrados
mysql> SELECT * FROM administrador;
+-----+--------------+------------+---------------+-------------+
| cID | cNOME | cTELEFONE | cLOGIN | cSENHA |
+-----+--------------+------------+---------------+-------------+
| 1 | Andreia Bunn | ********** | administrador | *********** |
+-----+--------------+------------+---------------+-------------+
- Saindo do Banco de Dados
mysql> quit
- Para alterar informações no banco. Ex: alterar a senha na tela administrador de projetoritz para projeto integrador, no qual está associado ao nome Andreia Bunn.
mysql> update admninistrador set cSENHA='projetointegrador' WHERE cNOME='Andreia Bunn';
- Criando a tabela usuários para cadastrados os usuários ADSL.
mysql> create table usuarios (cID INTEGER NOT NULL AUTO_INCREMENT,cNome VARCHAR(40),
cEmail VARCHAR(50), cTelefone VARCHAR(20), cUsuario VARCHAR(20), cSenha VARCHAR(20), PRIMARY KEY (cID));
- Verificando as informações na tabela usuarios
mysql> desc usuarios;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| cID | int(11) | NO | PRI | NULL | auto_increment |
| cNome | varchar(40) | YES | | NULL | |
| cEmail | varchar(50) | YES | | NULL | |
| cTelefone | varchar(20) | YES | | NULL | |
| cUsuario | varchar(20) | YES | | NULL | |
| cSenha | varchar(20) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
- Inserindo dados na tabela usuarios
mysql> INSERT into usuarios (cNome, cEmail, cTelefone, cUsuario, cSenha)
VALUES ('Andreia', 'andreia_bunn@hotmail.com', '4884588453', 'andreiabunn', 'andreia');
- Selecionando a tabela usuarios, para verificar os dados cadastrados
mysql> SELECT * FROM usuarios;
+-----+---------+--------------------------+------------+-------------+---------+
| cID | cNome | cEmail | cTelefone | cUsuario | cSenha |
+-----+---------+--------------------------+------------+-------------+---------+
| 1 | Andreia | andreia_bunn@hotmail.com | ********** | andreiabunn |******** |
+-----+---------+--------------------------+------------+-------------+---------+
SQUID
- É um servidor proxy que suporta HTTP, HTTPS, FTP e outros.[1] Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições freqüentes de páginas web numa rede de computadores. Ele pode também ser usado como um proxy reverso.
- Instalando o pacote
root@Ritz:/var/www# aptitude install squid3
- Editando o principal arquivo de configuração /etc/squid3/squid.conf
Na linha http_port 3128, substituir por http_port 3128 transparent. Adicionar visible_hostname www.ritz.sj.ifsc.edu.br. As demais configurações não seram modificadas.
DANSGUARDIAN
- O DansGuardian é um filtro de conteúdo desenvolvido para trabalhar em conjunto com o Squid, filtrando conteúdo indesejado. Utiliza um filtro adaptativo, que avalia o conteúdo da página e decide se ela é uma página imprópria com base no conteúdo, utilizando um conjunto de regras adaptativas. Ele inclui um conjunto de regras prontas, que contém palavras, frases e tipos de arquivos freqüentemente usados em páginas impróprias, além de uma lista de páginas conhecidas e trabalha cruzando todas essas informações.
- Instalando o pacote
root@Ritz:/var/www# aptitude install dansguardian
- Editando o arquivo /etc/dansguardian/dansguardian.conf. Comentar a linha:
#UNCONFIGURED
- Alterar para português Brasil:
language = 'ptbrazilian'
FIREWALL
- Instalando o pacote
root@Ritz:/var/www# aptitude install iptables
- Scritp para NAT e redirecionamento de portas /etc/init.d/firewall
#!/bin/bash
#Politica Padrã bloqueado, exceto o contráo
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t nat -F
# Interfaces
IFACE_EXTERNA="eth0"
# NAT
#iptables -t nat -A POSTROUTING -o ${IFACE_EXTERNA} -j MASQUERADE
# Redirecionamento para o Analisador de Conteúansguardian
#iptables -t nat -A PREROUTING -i ${IFACE_INTERNA} -p tcp --dport 80 \
#-j REDIRECT --to-port 8080
#limita resposta a "ping"
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Bloqueia pacotes invalidos
iptables -A INPUT -m state --state INVALID -j DROP
# Filtro de pacotes: saida de pacotes
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Filtro de pacotes: entrada de pacotes
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp --dpot 3128 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
exit 0
- Ativando o roteamento para o NAT: Abrir o arquivo/etc/sysctl.conf: Descomentar a linha 25
net.ipv4.ip_forward=1
- Concecendo permissão de leitura, escrita e execução ao arquivo firewall
root@Ritz:/etc/init.d# chmod 777 firewall
- Iniciar script junto com o sistema
update-rc.d firewall start 01 2 3 4 5
MONITORAÇÃO
- Criado a script de monitoramente dos processos DNS, HTTP e testes de máquina em /etc/init.d/monitoramento.sh
#!/bin/bash
ALVO="200.135.37.100"
MENSAGEM="/tmp/.mensagem"
# Declaração de função: teste de DNS
dns()
{
if [ `dig @${ALVO} a ritz.sj.ifsc.edu.br | \
grep -q "no servers could be reached"` ]
then
echo "DNS fora do ar." >> ${MENSAGEM}
fi
}
# Declaração de função: teste de HTTP
http()
{
TMP="/tmp/.http"
wget http://${ALVO}/ -O /dev/null > /dev/null 2> ${TMP}
if [ "`grep -q recusada ${TMP} && echo $?`" = "0" ]
then
echo "HTTP fora do ar." >> ${MENSAGEM}
fi
}
# Programa principal: teste da máquina
cat /dev/null > ${MENSAGEM}
RESULTADO=`ping ${ALVO} -c 1 | grep transmitted | cut -d \ -f 4`
if [ "${RESULTADO}" = "1" ]
then
# Teste dos serviços
dns
http
else
echo "Servidor fora do ar." >> ${MENSAGEM}
fi
if [ -s ${MENSAGEM} ]
then
cat ${MENSAGEM} | mail -s “Problemas” \
root@ritz.sj.ifsc.edu.br
fi
- Concecida permissão de leituta, escrita e execução ao arquivo monitoramento.sh
root@Ritz:/etc/init.d# chmod 777 monitoramento.sh
Dia: 06/12/2010 - 11º Dia
- Realizando configurações da camada de aplicação com integridade com o banco de dados mysql.
- Pesquisando sobre streaming.
Dia: 07/12/2010 - 12º Dia
- Pesquisado sobre o Software Zoneminder de gerenciamento de câmeras via rede.
- Testado a parte de sessões na camada de aplicação e a parte de autenticação de usuários.
- Indicação do professor Emerson: wiki.freeradius.org/HOWTO
Dia: 08/12/2010 - 13º Dia
- Configurado portas e criado a VLAN 3030 no DSLAN
OPERADORA: brasil telecom
VPI: 0
VCI:35
- Feito funcionar a webcan no software Zoneminder.
- Desinstalado o Dansguardian, pois o mesmo utiliza a porta 8080 e o zoneminder também.
BACKUP
- Criado a script de Backup em /var/backup/backup.sh
<syntaxhighlight lang=lang="html4strict">
- !/bin/bash
ORIGEM="/etc /home /var" DESTINO="/var/backup" DIA=`date +%d-%m-%Y-%H-%M` DIA_DA_SEMANA=`date +%A` EMAIL='andreia_bunn@hotmail.com'
- Criar o diretório de destino
mkdir -p ${DESTINO} chmod 700 ${DESTINO} chown root ${DESTINO}
- Função: backup completo
completo() {
tar cvzf ${DESTINO}/${DIA}.tar.gz ${ORIGEM} \ 2> /dev/null echo "Completo ; $DIA ; $ORIGEM ; $DIA_DA_SEMANA" >> /var/backup/relatorios/relatorio.txt
}
- Função: backup incremental (somente último dia)
incremental() {
tar cvzf ${DESTINO}/${DIA}.tar.gz `find ${ORIGEM} ! -type d -mtime -1` \ 2> /dev/null echo "Incremental ; $DIA ; $ORIGEM ; $DIA_DA_SEMANA" >> /var/backup/relatorios/relatorio.txt
}
- Função principa
if [ "${DIA_DA_SEMANA}" = "sunday" -o "${DIA_DA_SEMANA}" = "domingo" ] then
completo
else
incremental
fi
- mysqldump -uroot -proot --all-databases > ${DESTINO}/${DIA}.sql
- cat ${DESTINO}/${DIA}.txt | mail -s "[Backup]: ${DIA}" ${EMAIL}
find ${DESTINO} -type f -mtime +7 -exec rm -f {} \; exit 0 </syntaxhighlightc>