This repository has been archived by the owner on Apr 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 80
/
script-20.sh
350 lines (303 loc) · 13.1 KB
/
script-20.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
#!/bin/bash
# Autor: Robson Vaamonde
# Site: www.procedimentosemti.com.br
# Facebook: facebook.com/ProcedimentosEmTI
# Facebook: facebook.com/BoraParaPratica
# YouTube: youtube.com/BoraParaPratica
# Data de criação: 31/05/2016
# Data de atualização: 15/07/2019
# Versão: 0.14
# Testado e homologado para a versão do Ubuntu Server 16.04 LTS x64
# Kernel >= 4.4.x
#
# Configuração do Rsync para replicação de pastas
# Configuração do sistema de Backup utilizando o Backupninja
# Configuração do sistema de Monitoramente utilizando o Netdata
# Configuração da limpeza da Pasta Público
# Configuração da limpeza da Pasta Lixeira
# Configuração da limpeza das Filas de Email do Postfix
#
# Utilizar o comando: sudo -i para executar o script
#
# Caminho para o Log do Script-20.sh
LOG="/var/log/script-20.log"
#
# Variável da Data Inicial para calcular tempo de execução do Script
DATAINICIAL=`date +%s`
#
# Validando o ambiente, verificando se o usuário e "root"
USUARIO=`id -u`
UBUNTU=`lsb_release -rs`
KERNEL=`uname -r | cut -d'.' -f1,2`
if [ "$USUARIO" == "0" ]
then
if [ "$UBUNTU" == "16.04" ]
then
if [ "$KERNEL" == "4.4" ]
then
clear
# Exportando o recurso de Noninteractive do Debconf
export DEBIAN_FRONTEND="noninteractive"
#
echo -e "Usuário é `whoami`, continuando a executar o Script-20.sh"
echo
echo -e "Rodando o Script-20.sh em: `date`" > $LOG
echo -e "================================================================================="
echo -e " Instalação e Configuração do Sistema de Backup e Monitoramento"
echo -e "================================================================================="
echo
echo -e "Instalação do Backupninja no servidor: `hostname`"
echo -e "Pressione <Enter> para instalar"
read
echo
echo -e "Atualização as listas do Apt-Get, aguarde..."
#Fazendo a atualização das listas do apt-get
apt-get update &>> $LOG
echo -e "Atualização das lista do apt-get feita com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando os software instalados, aguarde..."
#Fazendo a atualização de todos os software do servidor
apt-get -o Dpkg::Options::="--force-confold" upgrade -q -y --force-yes &>> $LOG
echo -e "Atualização do sistema feita com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Setando as configurações do Postfix, aguarde..."
#Setando as configurações do debconf para o postfix funcionar no modo Noninteractive
echo -e "postfix postfix/mailname string ptispo01dc01.pti.intra" | debconf-set-selections &>> $LOG
echo -e "postfix postfix/main_mailer_type string Internet Site" | debconf-set-selections &>> $LOG
echo -e "Configurações setadas com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Instalando o Backupninja, aguarde..."
#Instalando o Backupninja
apt-get -y install backupninja &>> $LOG
echo -e "Instalação do Backupninja feita com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Instalação do sistema de monitoramente em tempo real Netdata"
echo -e "Após a instalação acessar a URL http://`hostname`:19999"
echo -e "Download e instalação das dependências do Netdata"
echo -e "Pressione <Enter> para instalar"
read
echo -e "Instalação das dependências do Netdata, aguarde..."
#Instalando as dependências do Netdata
apt-get -y install zlib1g-dev gcc make git autoconf autogen automake pkg-config uuid-dev python python-pip python-dev \
python3-dev libmysqlclient-dev python-ipaddress mysql-client python-pymssql python-mysqldb &>> $LOG
echo -e "Instalação das dependêncais do Netdata feita com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Limpando as informações do cache do apt-get, aguarde..."
#Limpando o cache do apt-get
apt-get clean >> $LOG
echo -e "Limpeza do cache do apt-get feito com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Clonando o projeto do Netdata do Github, aguarde..."
#Clonando o site do GitHub do Netdata
git clone https://github.com/firehol/netdata.git --depth=1 &>> $LOG
echo -e "Clonagem do software do Netdata feito com sucesso!!!, continuando o script..."
sleep 2
echo
#Acessando o diretório do Netdata
cd netdata
echo -e "Pressione <Enter> para compilar o software do NetData"
echo
read
#Compilando e instalando o Netdata
./netdata-installer.sh
#Saindo do diretório do Netdata
cd ..
echo
echo -e "Removendo o diretório do Netdata, aguarde..."
#Removendo o diretório do Netdata
rm -Rfv netdata/ >> $LOG
echo -e "Diretório removido com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Instalando os recursos de monitoramente do Banco de Dados MySQL, DHCP e DNS aguarde..."
#
echo -e "Fazendo o Backup dos Arquivos de Configuração Original, aguarde"
mv -v /usr/lib/netdata/conf.d/python.d/isc_dhcpd.conf /usr/lib/netdata/conf.d/python.d/isc_dhcpd.conf.old &>> $LOG
mv -v /usr/lib/netdata/conf.d/python.d/mysql.conf /usr/lib/netdata/conf.d/python.d/mysql.conf.old &>> $LOG
echo -e "Backup feito com sucesso!!!, continuando o script..."
sleep 2
echo
#
echo -e "Copiando os arquivos de Configuração do MySQL, ISC-DHCPD e Bind"
cp -v conf/mysql_srv.conf /usr/lib/netdata/conf.d/python.d/mysql.conf &>> $LOG
cp -v conf/isc_dhcpd.conf /usr/lib/netdata/conf.d/python.d/ &>> $LOG
echo -e "Arquivos atualizados com sucesso!!!, continuando o script..."
echo -e "Instalação do Netdata feita com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Configurando o Backupninja e criando os agendamentos de backup"
echo -e "Pressione <Enter> para configurar o backup"
read
#Criando e agendando o backup do diretório /arquivos/pti.intra
#Utilização do wizard do Backupninja (mais fácil)
ninjahelper
echo -e "Backupninja agendando com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Configurando o serviço do Rsync"
echo -e "Alterar a linha: RSYNC_ENABLE=false para RSYNC_ENABLE=true"
echo -e "Pressione <Enter> para editar o arquivo"
read
echo -e "Fazendo o backup do arquivo rsync, aguarde..."
#Fazendo o backup do arquivo de configuração do rsync
cp -v /etc/default/rsync /etc/default/rsync.old &>> $LOG
echo -e "Backup feito com sucesso!!!, continuando o script..."
sleep 2
echo
#Editando o arquivo do serviço do rsync
vim /etc/default/rsync +8
echo
echo -e "Reinicializando o serviço do Rsync, aguarde..."
#Reinicializando o serviço do rsync
sudo service rsync restart
echo -e "Serviço reinicializado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Arquivo editado com sucesso!!!, pressione <Enter> para continuar com o script"
read
sleep 2
clear
echo
echo -e "Criando o agendamento do sincronismo de pastas"
echo -e "Pressione <Enter> para editar o arquivo"
read
echo -e "Atualizando o arquivo do rsync_samba, aguarde..."
#Copiando o script do sincronismo do rsync do samba
cp -v conf/rsync_samba /usr/sbin >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Alterando as permissões do arquivo rsync_samba, aguarde..."
#Aplicando as permissões
chmod -v 750 /usr/sbin/rsync_samba >> $LOG
echo -e "Permissões alteradas com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo rsyncsamba, aguarde..."
#Copiando o agendamento do sincronismo do rsync do samba
cp -v conf/rsyncsamba /etc/cron.d/ >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
#Editando o arquivo do sincronismo
vim /etc/cron.d/rsyncsamba +13
echo -e "Arquivo editado com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Agendamento da Limpeza da Pasta Público"
echo -e "Pressione <Enter> para editar o arquivo"
read
echo -e "Atualizando o arquivo clean_public, aguarde..."
#Copiando o script da limpeza da pasta público
cp -v conf/clean_public /usr/sbin >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Alterando as permissões do arquivo clean_public, aguarde..."
#Aplicando as permissões
chmod -v 750 /usr/sbin/clean_public >> $LOG
echo -e "Permissões alteradas com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo cleanpublic, aguarde..."
#Copiando o agendamento da limpeza da pasta público
cp -v conf/cleanpublic /etc/cron.d/ >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
#Editando o arquivo do agendamento
vim /etc/cron.d/cleanpublic +13
echo -e "Arquivo editado com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Agendamento da Limpeza da Pasta Lixeira"
echo -e "Pressione <Enter> para editar o arquivo"
read
echo -e "Atualizando o arquivo clean_recycle, aguarde..."
#Copiando os script da limpeza da pasta lixeira
cp -v conf/clean_recycle /usr/sbin >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Alterando as permissões do arquivo clean_recycle, aguarde..."
#Aplicando as permissões
chmod -v 750 /usr/sbin/clean_recycle >> $LOG
echo -e "Permissões alteradas com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo cleanrecycle, aguarde..."
#Copiando o agendamento da limpeza da pasta lixeira
cp -v conf/cleanrecycle /etc/cron.d/ >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
#Editando o arquivo do agendamento
vim /etc/cron.d/cleanrecycle +13
echo -e "Arquivo editado com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Agendamento da Limpeza dos E-mail do Postifix"
echo -e "Pressione <Enter> para editar o arquivo"
read
echo -e "Atualizando o arquivo postfix_queue, aguarde..."
#Copiando os script da limpeza da dos e-mail do postfix
cp -v conf/postfix_queue /usr/sbin >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Alterando as permissões do arquivo postfix_queue, aguarde..."
#Aplicando as permissões
chmod -v 750 /usr/sbin/postfix_queue >> $LOG
echo -e "Permissões alteradas com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo postfixqueue, aguarde..."
#Copiando o agendamento da limpeza dos e-mail do postfix
cp -v conf/postfixqueue /etc/cron.d/ >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
#Editando o arquivo do agendamento do postfix
vim /etc/cron.d/postfixqueue +13
echo -e "Arquivo editado com sucesso!!!, pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Fim do Script-20.sh em: `date`" >> $LOG
echo -e " Instalação e Configuração do Sistema de Backup e Monitoramento"
echo -e "================================================================================="
echo
# Script para calcular o tempo gasto para a execução do script-20.sh
DATAFINAL=`date +%s`
SOMA=`expr $DATAFINAL - $DATAINICIAL`
RESULTADO=`expr 10800 + $SOMA`
TEMPO=`date -d @$RESULTADO +%H:%M:%S`
echo -e "Tempo gasto para execução do script-20.sh: $TEMPO"
echo -e "Pressione <Enter> para concluir o processo."
read
else
echo -e "Versão do Kernel: $KERNEL não homologada para esse script, versão: >= 4.4 "
echo -e "Pressione <Enter> para finalizar o script"
read
fi
else
echo -e "Distribuição GNU/Linux: `lsb_release -is` não homologada para esse script, versão: $UBUNTU"
echo -e "Pressione <Enter> para finalizar o script"
read
fi
else
echo -e "Usuário não é ROOT, execute o comando com a opção: sudo -i <Enter> depois digite a senha do usuário `whoami`"
echo -e "Pressione <Enter> para finalizar o script"
read
fi