This repository has been archived by the owner on Oct 27, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
menu.sh
executable file
·456 lines (394 loc) · 14.3 KB
/
menu.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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
#!/bin/bash
source progress_bar.sh
if [[ -e /etc/debian_version ]]; then
source /etc/os-release
OS=$ID # debian or ubuntu
else
echo "Você não tem instalado ou não esta com sistema Debian ou Ubuntu "
exit 1
fi
if [ "$(uname -m)" = "x86_64" ];then
echo "Processador (X64) AMD64, continuando"
else
echo "Seu processador não é uma AMD64 (X64) ele é um $(uname -m)"
exit 1
fi
REMOVE=$(pwd)
#Usuario
#Root
if [ "$EUID" -ne 0 ]; then
echo "Você não está executando o script com root ou sudo"
exit 0
fi
if [[ $OS == 'ubuntu' ]]; then
echo "Ubuntu detectado instalando algumas recomendações espere ..."
apt install screen unzip dos2unix jq zip net-tools -y >>$USUARIO/log.txt 2>&1 ;
elif [[ $OS == 'debian' ]]; then
apt install screen unzip zip dos2unix jq net-tools -y >>$USUARIO/log.txt 2>&1 ;
else
exit 1
fi
#pode ser aqui ali ou DEBIAN
TMP=/home/Minecraft-temp
mkdir $TMP >>$USUARIO/log.txt 2>&1 ;
# Remoção dos arquivo de log
rm -rf $TMP/level.txt >>$USUARIO/log.txt 2>&1 ;
echo "o Diretorio do seu usuario é $USUARIO"
echo "Começamos ás $(TZ=UTC+3 date +"%H:%M:%S")"
echo " "
echo "--------------"
echo " "
# --------------- Codigo ------------------------------
variaveis_predefinidas(){
BDS="$(wget -qO- https://script.sirherobrine23.org/BDS.txt)"
echo "Atualmente temos os sequinte link download: $BDS"
USUARIO=$(echo $HOME)
if [[ -e installed.txt ]]; then
PATH_TO_INSTALL="$(cat installed.txt)"
echo "Depois voçê pode alterar o diretorio no arquivo 'installed.txt'"
echo " "
echo " "
else
read -rp "a onde vai ser instalado: " -e -i "/home/minecraft" PATH_TO_INSTALL
touch installed.txt -a $PATH_TO_INSTALL
echo "$PATH_TO_INSTALL" >> installed.txt
echo " "
echo " "
fi
cat $PATH_TO_INSTALL/server.properties | grep "level-name=" > /tmp/level.txt ; sed -i "s|level-name=||g" "/tmp/level.txt"
level=$(dos2unix /tmp/port.txt;cat /tmp/level.txt)
read -rp "Qual é o nome do Mapa (Só confimação do nome): " -e -i "$level" MAPA_DO_SERVIDOR
cat $PATH_TO_INSTALL/server.properties | grep "server-port=" > /tmp/port.txt ; sed -i "s|server-port=||g" "/tmp/port.txt"
PORTAD=$(dos2unix /tmp/port.txt;cat /tmp/port.txt)
}
json(){
PATH_TO_INSTALL="$(cat install.json | jq ".install.dir" | sed 's|"||g')"
BDS="$(wget -qO- $(cat install.json | jq ".global.url_download" | sed 's|"||g'))"
PORTAD="$(cat install.json | jq ".global.port" | sed 's|"||g')"
MAPA_DO_SERVIDOR="$(cat install.json | jq ".global.name_map" | sed 's|"||g')"
level="$(cat install.json | jq ".global.name_map" | sed 's|"||g')"
}
# Usando arquivo json
if [[ -e install.json ]];then
json
else
variaveis_predefinidas
fi
limpando(){
rm mcpe.zip
rm -rf mcpe/
}
installbysh23(){
#banner
cat banner.txt;
# Prerequisite
echo " ";
draw_progress_bar 1
#Download do arquivos servidor
echo "Baixando o Software do BDS";
wget "$BDS" -O mcpe.zip >>$USUARIO/log.txt 2>&1 ;
draw_progress_bar 2
echo "Descompactando o software do BDS";
draw_progress_bar 5
unzip mcpe.zip -d mcpe/ >>$USUARIO/log.txt 2>&1 ;
rm -rf mcpe.zip;
draw_progress_bar 10
#config
echo "Configuração Base"
rm -rf mcpe/server.properties >>$USUARIO/log.txt 2>&1 ;
rm -rf mcpe/whitelist.json >>$USUARIO/log.txt 2>&1 ;
cp -r ./server.properties mcpe/ >>$USUARIO/log.txt 2>&1 ;
cp -r ./whitelist.json mcpe/ >>$USUARIO/log.txt 2>&1 ;
draw_progress_bar 15
#Movendo
echo "Criando e Movendo para o $PATH_TO_INSTALL"
rm -rf $PATH_TO_INSTALL
draw_progress_bar 20
mkdir $PATH_TO_INSTALL
draw_progress_bar 30
cp -r mcpe/* $PATH_TO_INSTALL/
draw_progress_bar 50
echo "Limpando alguns arquivos"
rm -rf mcpe/
echo "O log está no arquivo $USUARIO/log.txt"
draw_progress_bar 100
}
updatebysh23(){
cat banner.txt
#Preparando
block_progress_bar 1
echo "Backup?"
read -rp "Nome do backup: " -e -i "$(TZ=UTC+3 date +"%d-%m-%Y")" BACKUP
draw_progress_bar 20
PATH_TO_BACKUP="$HOME/MCPE-BACKUP"
echo "$PATH_TO_BACKUP"
mkdir "$PATH_TO_BACKUP"
echo "verificando se a arquivos antingos no $(pwd)"
if [[ -d mcpe/ ]]; then
rm -rf mcpe/
fi
if [[ -e mcpe.zip ]];then
rm -rf mcpe.zip
fi
draw_progress_bar 34
# backup
voltando="$(pwd)"
cd $PATH_TO_INSTALL
zip -q "$PATH_TO_BACKUP/$BACKUP.zip" -r *
cp -r * $PATH_TO_BACKUP/
cd $voltando
# BDS DOWNLOADS
draw_progress_bar 48
wget -q "$BDS" -O mcpe.zip
# descompactando
draw_progress_bar 50
unzip mcpe.zip -d mcpe > /dev/null
# configurando
if [ $? -eq 0 ];then
echo "Whitelist.json"
rm mcpe/whitelist.json
cp $PATH_TO_BACKUP/whitelist.json mcpe/whitelist.json
else
echo "$?"
echo "Saindo error ao extrair os arquivos"
exit 127
fi
if [ $? -eq 0 ];then
echo "Server.properties"
rm mcpe/server.properties
cp $PATH_TO_BACKUP/server.properties mcpe/server.properties
else
echo "Saindo error no comando anterior"
exit 127
fi
if [ $? -eq 0 ];then
echo "Mapas/Worlds"
rm -r mcpe/worlds
cp $PATH_TO_BACKUP/worlds mcpe/worlds
else
echo "Saindo error no comando anterior"
exit 127
fi
if [ -d $PATH_TO_INSTALL ];then
"Movendo a instalação antiga para a pasta /tmp/"
mv -f $PATH_TO_INSTALL /tmp/
fi
#movendo
cp -rf mcpe/* "$PATH_TO_INSTALL"
limpando
}
backupbysh23(){
if [ -e /usr/sbin/BDS ] ; then
echo "Para fazer o backup coloque sim (yes) e de [enter], caso não queira, não (no) e de [enter]"
read -rp "Vai querer fazer o backup? " -e -i "sim" BC
case $BC in
sim | yes ) touch $PATH_TO_INSTALL/backup.txt -a $PATH_TO_INSTALL ; echo "Vamos configurar agora o Gdrive, precisamos fazer um login na sua conta do google. nenhum dado será amarzenado pelo script." ; sleep2 ; gdrive about ;;
nao | no ) exit;;
* ) echo "não houve escolha, saindo ..."; exit
esac
else
echo "não podemos cria agora, por favor execute primeiro o --fundo"
fi
}
ipbysh23(){
#Comando --ip variaveis
IP_V4=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
SEARCH_IPV6=$(ip -6 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1)
IP_V6=$(ifconfig $SEARCH_IPV6 | grep "inet6" | awk -F' ' '{print $2}' | awk '{print $1}')
IP_PUBLICO=$(wget -qO- http://ipecho.net/plain)
#Echo's
echo "Seu IPv4 é $IP_V4 para Jogar localmente , e o Seu IPv6 é $(echo -ne $IP_V6)"
echo " "
echo "Caso Queira Jogar Remotamento com alguém Abra as Portas 19132 e 19133 no seu Roteador ou seu Firewall, seu IPv4 Publico é $IP_PUBLICO"
echo "Também verifique se sua operadora ou provedor libera as portas do servidor. contate-os"
echo " ";
}
apache2-installbysh23(){
#Instalação do apache2
echo "Instalando o Apache2"
apt update >> /dev/null 2>&1
apt install apache2 -y >> /dev/null 2>&1
# Removendo pasta HTML e Adicionando denovo
rm -rf /var/www/html/
mkdir /var/www/html/
# Pegando as config
echo "Agora vamos começar a configurar o nova pagina do Apache"
sleep 2
echo "Vamos precicar de algumas informações como:"
echo "Dominio caso você tenha"
echo "nome que aparacera na Pagina. etc ..."
sleep 3
read -rp "Qual será o dominio ou nos da o IP publico: " -e -i "$(wget -qO- http://ipecho.net/plain)" IPDOMAIN
read -rp "Qual é o nome que aparacera na pagina: " -e -i "$(cat /tmp/level.txt)" MAINSERVERNAME
# Montando as Configurações
sed -i "s|ENDEREÇODOSERVIDOROUIP|$IPDOMAIN|g" "./html-files/index.html"
sed -i "s|MAINSERVERNAME|$MAPA_DO_SERVIDOR|g" "./html-files/index.html"
sed -i "s|PORTASERVER|$PORTAD|g" "./html-files/index.html"
# Movendo as configurações
cp -rf ./html-files/* /var/www/html/
}
externobysh23(){
# vsftp and Samba
apt install -y vsftpd samba >> /dev/null 2>&1 ;
#config
sed -i "s|PATHTOISNTALL|$PATH_TO_INSTALL|g" "./smb.conf"
sed -i "s|root||g" "/etc/ftpusers"
rm /etc/samba/smb.conf
cp -rf ./smb.conf /etc/samba/
cp -rf ./vsftp.conf /etc/vsftpd.conf
service smbd restart
service vsftpd restart
echo "Para adicionar um usuario no Smb use smbpasswd -a username"
echo "Para usar o ftp não precisar de nada a mais para configura só ter um usuario no sistema"
}
#
fundobysh23(){
echo " "
rm /usr/sbin/BDS
rm -rf /tmp/level.txt
rm -rf /sbin/mcpe
rm -rf /usr/sbin/BDS
rm -rf /usr/sbin/mcpe
# -- Config --
cp fundo.sh /tmp/
MINE2Sh23="/home/MCPE-Backups"
read -rp "Qual é o ID da pasta no google Drive caso fará backup para A Nuven (Exemplo: 1-FWzQJWhhJK_00ETU4uVOg6R5c5p_yMP)? " -e -i "" ID
read -rp "Aonde você vai quere colocar os Backups Locais (Caso queira)? " -e -i "$MINE2Sh23" MINE2Sh23
mkdir $MINE2Sh23
sed -i "s|ID|$ID|g" "/tmp/fundo.sh";
sed -i "s|MINE|$PATH_TO_INSTALL|g" "/tmp/fundo.sh";
sed -i "s|NAME|$MAPA_DO_SERVIDOR|g" "/tmp/fundo.sh";
sed -i "s|2MINESh23|$MINE2Sh23|g" "/tmp/fundo.sh";
cp -rf /tmp/fundo.sh /usr/sbin/BDS
chmod a+x /usr/sbin/BDS
# -- Config --
echo " "
}
sistemabysh23(){
wget "https://drive.google.com/uc?export=download&id=1UlemfOSQUxbxTFDriAeDV7o1hRwXcS43" -O /usr/bin/gdrive >>$USUARIO/log.txt 2>&1 ;
chmod a+x /usr/bin/gdrive
# ---------------------------------------
echo " "
rm -rf /usr/sbin/mcpe-server
rm -rf /sbin/mcpe-server
rm -rf /sbin/BDS
rm -rf /usr/sbin/BDS
rm -rf /tmp/level.txt
# -- Config --
cp fundo.sh /tmp/
MINE2Sh23="/var/www/html"
if [[ -e IDs.txt ]];then
ID="$(cat IDs.txt)"
else
read -rp "Qual é o ID da pasta no google Drive caso fará backup para A Nuven (Exemplo: 1-FWzQJWhhJK_00ETU4uVOg6R5c5p_yMP)? " -e -i "" ID
echo "$ID" > IDs.txt
dos2unix IDs.txt
fi
if [[ -e pasta.txt ]];then
MINE2Sh23="$(cat $HOME/pasta.txt)"
else
read -rp "Aonde você vai quere colocar os Backups Locais (Caso queira)? " -e -i "$MINE2Sh23" MINE2Sh23
echo $MINE2Sh23 > pasta.txt
dos2unix pasta.txt
fi
mkdir $MINE2Sh23
sed -i "s|IDSh23|$ID|g" "/tmp/fundo.sh";
sed -i "s|MINESh23|$PATH_TO_INSTALL|g" "/tmp/fundo.sh";
sed -i "s|NAMESh23|$MAPA_DO_SERVIDOR|g" "/tmp/fundo.sh";
sed -i "s|MINE2Sh23|$MINE2Sh23|g" "/tmp/fundo.sh";
cp -rf /tmp/fundo.sh /usr/sbin/BDS
chmod a+x /usr/sbin/BDS
# -- Config --
echo " "
# ---------------------------------------
echo "Iniciando as Configurações do arquivo para Inicialização junto com o Sistema"
cp start-on-system.sh /tmp/systemsh23.sh;
sed -i "s|IDSh23|$ID|g" "/tmp/systemsh23.sh";
sed -i "s|MINESh23|$PATH_TO_INSTALL|g" "/tmp/systemsh23.sh";
sed -i "s|NAMESh23|$MAPA_DO_SERVIDOR|g" "/tmp/systemsh23.sh";
sed -i "s|MINE2Sh23|$MINE2Sh23|g" "/tmp/systemsh23.sh";
cp "/tmp/systemsh23.sh" "/etc/init.d/BDS";
echo "copiando o arquivo";
chmod a+x /etc/init.d/BDS;
update-rc.d BDS defaults
update-rc.d BDS enable
echo "pronto ele inicia junto com sistema, o comando abaixo pode ajudar"
echo " "
echo ' service BDS start|stop|restart'
echo " "
echo "Para desativar o Inicio altomatico execute $0 --remover-service ou $0 -R"
echo "Para quem quiser iniciar manualmente:"
echo "Execute 'screen BDS'"
echo "E para deixar o servidor em segundo plano aperte CRTL + A + D. deixara em segundo plano para voltar basta executar o comando screen -r"
}
#
removerservicesh23(){
update-rc.d BDS defaults-disabled
update-rc.d BDS disable
rm -rf /etc/init.d/BDS
}
#
script-update(){
curl https://script.sirherobrine23.org/BDS-Script.sh | bash
}
crontabsh23(){
read -rp "Por favor nos informe uma data via crontab!(Exemplo 0 23 * * *, voce tamém pode usar o https://crontab.guru/#0_23_*_*_*) " -e -i "0 23 * * *" CRON
mkdir /bc/
#
if [[ -e IDs.txt ]];then
ID="$(cat IDs.txt)"
else
read -rp "Qual é o ID da pasta no google Drive caso fará backup para A Nuven (Exemplo: 1-FWzQJWhhJK_00ETU4uVOg6R5c5p_yMP)? " -e -i "" ID
echo "$ID" > IDs.txt
dos2unix IDs.txt
fi
if [[ -e pasta.txt ]];then
MINE2Sh23="$(cat pasta.txt)"
else
read -rp "Aonde você vai quere colocar os Backups Locais (Caso queira)? " -e -i "$MINE2Sh23" MINE2Sh23
echo $MINE2Sh23 > pasta.txt
dos2unix pasta.txt
fi
mkdir $MINE2Sh23
cp -rf backup-mcpe.sh /tmp/backup.sh
sed -i "s|IDSh23|$ID|g" "/tmp/fundo.sh";
sed -i "s|MINESh23|$PATH_TO_INSTALL|g" "/tmp/backup.sh";
sed -i "s|NAMESh23|$MAPA_DO_SERVIDOR|g" "/tmp/backup.sh";
sed -i "s|MINE2Sh23|$MINE2Sh23|g" "/tmp/backup.sh";
rm -rf /bc/backup-mcpe.sh
cp -rf /tmp/backup.sh /bc/backup-mcpe.sh
#
echo "adiciona essa linha a seguir no crontab"
echo "$CRON bash /bc/backup-mcpe.sh"
read -rp "De [ENTER] para continua" -e -i "" NULL
crontab -e
}
# Escolha -------------- *** -----------
enable_trapping
# Create progress bar
setup_scroll_area
case $1 in
--install | -i ) installbysh23 ;;
--update | -u ) updatebysh23 ;;
--backup | -b ) backupbysh23 ;;
--start-on-system | -s ) sistemabysh23 ;;
--ip | -P ) ipbysh23 ;;
--apache2 | --page | -a ) apache2-installbysh23 ;;
--files | -f ) externobysh23 ;;
--update-script | -ds ) script-update ;;
--remover-service | -R ) removerservicesh23 ;;
--crontab | -c ) crontabsh23 ;;
--remover | -r ) rm -rf "$REMOVE";;
--help | -h ) cat help.txt ; echo " ";;
--teste ) echo "$0 $1 $2 $3 $4 $5";;
*) echo "Exeute $0 --help - o comando $0 $1 não existe aqui";echo " "
esac
destroy_scroll_area
# --------------- Codigo ------------------------------
echo " "
echo "--------------"
echo " "
echo "qualquer erro no script me comunique no https://github.com/Sirherobrine23/Minecraft-Bedrock-auto-install/issues"
echo "Terminamos as $(TZ=UTC+3 date +"%H:%M:%S")"
rm -rf mcpe.zip
echo " "