-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbacula.sh
executable file
·101 lines (70 loc) · 1.53 KB
/
bacula.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
#!/bin/bash
DIRETORIO=$(echo $2)
function usage(){
clear
echo "Script de backup curso 451"
echo "Opcoes de uso:"
echo "$0 cadastrar"
echo " -- Cadastrar um servidor no banco"
echo "$0 remover"
echo " -- Remover um servidor do banco"
echo "$0 gerar"
echo " -- Gera o backup dos servidores cadastrados"
echo "$0 listar"
echo " -- Lista o servidores cadastrados para o backup"
}
function geraBackup(){
for linha in $(cat banco.txt)
do
SERVIDOR=$(echo $linha | cut -f1 -d';' )
DIRETORIO=$(echo $linha | cut -f2 -d';' | tr "," " ")
DATA=$( date +%d_%m_%Y)
echo "Realizando Backup"
ssh root@$SERVIDOR "tar zcf /tmp/_${SERVIDOR}_$DATA.tar.gz $DIRETORIO "
echo "Copiando arquivo"
scp root@$SERVIDOR:/tmp/_${SERVIDOR}_$DATA.tar.gz /backup/
echo "Removendo backup da origem"
ssh root@$SERVIDOR "rm -f /tmp/_${SERVIDOR}_$DATA.tar.gz"
done
}
function cadastrar(){
echo "Digite o ip do servidor"
read SERVIDOR
SERVIDOR=$(echo "$SERVIDOR" | tr -d " ")
grep "$SERVIDOR" banco.txt
if [ $? == 0 ]; then
echo "Servidor ja cadastrado"
exit
fi
echo "Digite os diretorios sepados por ,"
read DIRETORIOS
DIRETORIOS=$(echo $DIRETORIOS | tr " " "," )
echo "$SERVIDOR;$DIRETORIOS" >> banco.txt
listar
}
function listar(){
nl banco.txt
}
function remover(){
echo "Digite o ip a ser removido"
read SERVIDOR
sed -i "/$SERVIDOR/d" banco.txt
nl banco.txt
}
case $1 in
'cadastrar')
cadastrar
;;
'remover')
remover
;;
'listar')
listar
;;
'gerar')
geraBackup
;;
*)
usage
;;
esac