-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathbackup-automatico.sh
executable file
·172 lines (166 loc) · 3.96 KB
/
backup-automatico.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
#!/bin/bash
#script para automatizar a execução de backup
#utiliza o programa rsync para backup e zenity para fazer as GUI
#
#ano: 2016
#por Flávio Oliveira (Flávio Dicas)
#http://www.flaviodeoliveira.com.br
#http://www.youtube.com/flaviodicas
#https://github.com/oliveiradeflavio
#oliveiradeflavio@gmail.com
bkpinc()
{
clear
echo "Escolha o arquivo a ser feito o backup"
sleep 2
bkplocal=$(zenity --file-selection --multiple)
echo
echo "Escolha o destino para onde o backup será salvo"
sleep 2
bkpdest=$(zenity --file-selection --directory)
echo
clear
echo "Verifique as informações se estão corretas"
echo "Arquivo a ser salvo: $bkplocal"
echo "Destino do backup: $bkpdest"
sleep 3
echo
read -n1 -p "As informações estão corretas? s/n = " escolha
case $escolha in
S|s) echo
rsync -Cavzpu --progress $bkplocal $bkpdest
;;
N|n) echo
bkpinc
;;
*) echo
echo Alternativas incorretas. Voltando ao Menu Principal.
sleep 2
mainmenu
;;
esac
}
bkpfull()
{
clear
echo "Escolha o diretório a ser feito o backup"
sleep 2
bkplocal=$(zenity --file-selection --directory)
echo
echo "Escolha o destino para onde o backup será salvo"
sleep 2
bkpdest=$(zenity --file-selection --directory)
echo
clear
echo "Verifique as informações se estão corretas"
echo "Arquivo a ser salvo: $bkplocal"
echo "Destino do backup: $bkpdest"
sleep 3
echo
read -n1 -p "As informações estão corretas? s/n = " escolha
case $escolha in
S|s) echo
rsync -bzpvrl --progress $bkplocal $bkpdest
;;
N|n) echo
bkpfull
;;
*) echo
echo Alternativas incorretas. Voltando ao Menu Principal.
sleep 2
mainmenu
;;
esac
}
ajuda()
{
clear
echo -e "Backup Full = faz a cópia total do arquivo origem para o diretório\n
destino. Se no destino contiver os mesmos arquivos, ele fará a substituição\n
total dos arquivos do destino pelos os arquivos de origem."
echo
echo
echo -e "Backup Incremental = faz a cópia dos arquivos origem para o diretório\n
destino. Se no destino contiver os mesmos arquivos, ele somente fará a substiuiçao\n
se os arquivos de origem forem diferentes dos arquivos de destino."
echo
read -n1 -p "Voltar ao Menu Principal. s/n " -s escolha ; echo "($escolha)"
case $escolha in
s|S) echo
mainmenu
;;
n|N) echo
echo Saindo do script.
sleep 0.5
exit
;;
*) echo
echo Alternativas incorretas
sleep 0.5 ; ajuda
;;
esac
}
checkprog()
{
which -a apt 1>/dev/null 2>/dev/stdout
if [ $? -eq 0 ]; then
echo
else
echo -e "Seu sistema utiliza outro gerenciador de pacotes\n
(apt-get) desse script. Favor mudar no script na função checkprog\n
para poder utilizar."
sleep 3
exit
fi
clear
if which -a rsync 1>/dev/null 2>/dev/stdout || which -a zenity 1>/dev/null 2>/dev/stdout ; then
echo
else
echo -e "Você precisa do rsync e zenity para prosseguir.\nAguarde a instalação ..."
sudo apt-get install rsync zenity -y 1>/dev/null 2>/dev/stdout
sleep 2
fi
clear
}
mainmenu()
{
checkprog
clear
echo "#############################################################"
echo "# BACKUP AUTOMÁTICO #"
echo "# #"
echo "# utilizando o programa 'rsync' e 'zenity' por Flávio Dicas #"
echo "#############################################################"
echo
echo "F) - Backup Full "
echo
echo "I) - Backup Incremental"
echo
echo "A) - Diferença entre BKP Full e Incremental"
echo
echo "S) - Sair"
echo
read -n1 -p "Escolha uma das alternativas acima " -s escolha
case $escolha in
F|f) echo
bkpfull
;;
I|i) echo
bkpinc
;;
A|a) echo
ajuda
;;
S|s) echo
echo Saindo ...
sleep 1
exit
;;
*) echo
echo Alternativas incorretas!!!
sleep 0.5
mainmenu
;;
esac
}
mainmenu