Lukasbb
(usa Ubuntu)
Enviado em 30/11/2015 - 17:52h
Preciso de help.
Fiz um script de backup para um trabalho, o professor não tem ajudado muito, mas consegui fazer quase 80% dele com dicas que peguei aqui mesmo no Viva o Linux. Preciso de uma ajuda, ele não ta funcionando mto bem e a parte de enviar o backup para o pendrive não tá rolando. Eu sei que ficou um script meio burro, mas é o que consegui fazer. Se alguém puder me ajudar a melhorar ele , e salvar o backup.tar no pendrive agradeço.
abaixo o script:
#!/bin/bash
caminhobackup=/home/box2redes
hora=$(date +%T)
#-----------------------------------------ESSA É A FUNÇÃO DA TELA INICIAL-----------------------------------------------
inicio (){
var=$( dialog \
--backtitle BACKUP_dos_FORTES \
--title Backup \
--stdout \
--menu 'Escolha uma opção:' 0 0 0 \
1 'BACKUP' \
2 'AGENDAR UM BACKUP' )
case $var in
1) backup;;
2) cron;;
*) clear; exit;;
esac
}
#-------------------------------------------------FUNCAO BACKUP---------------------------------------------------------
backup (){
var_back=$( dialog \
--stdout \
--backtitle BACKUP_dos_FORTES \
--title BACKUP \
--inputbox 'Digite o caminho' 0 0 )
if [ $? = 0 ];
then
if [ -d $var_back ];
then
if [ ! -d backup ];
then
dialog --msgbox 'Pasta backup nao exite, ela sera criada automaticamente'
ex_backup
inicio
else
ex_backup
inicio
fi
else
dialog --msgbox 'Diretorio inexistente, reiniciando.. .' 5 40
inicio
exit
fi
else
clear
exit
fi
}
#-----------------------------------------------funcao executar o backup----------------------------------------------------------------
ex_backup (){
cd $caminhobackup
mkdir backup
tar cvfz $caminhobackup/backup/backup.tar $var_back > $caminhobackup/backup/$hora
for i in {1..100}
do
sleep 0.032 &&
echo $i
done | dialog --title 'afetuando backup' \
dialog --msgbox 'Backup finalizado!' 5 40 \
pen
exit
}
#----------------------------------------------------Agendador de backups-------------------------------------------------------------------
cron (){
min=$(dialog \
--title Agenda \
--stdout \
--menu 'Escolha em que minuto deseja que o backup inicie' 0 0 0 \
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 '' "*" 'Todo minuto') \
hora=$(dialog \
--title Agenda \
--stdout \
--menu 'Escolha em que hora do dia ele sera feito' 0 0 0 \
1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' 9 '' 10 '' 11 '' 12 '' \
13 '' 14 '' 15 '' 16 '' 17 '' 18 '' 19 '' 20 '' 21 '' 22 '' 23 '' \
"*" 'Toda hora')
dia=$(dialog \
--title Agenda \
--stdout \
--menu 'Escolha o dia que faremos' 0 0 0 \
1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' 9 '' 10 '' \
11 '' 12 '' 13 '' 14 '' 15 '' 16 '' 17 '' 18 '' 19 '' 20 '' \
21 '' 22 '' 23 '' 24 '' 26 '' 27 '' 28 '' 29 '' 30 '' \
31 '' "*" 'todo dia')
mes=$(dialog \
--title Agenda \
--stdout \
--menu 'Escolha que mes ele sera feito' 0 0 0 \
1 'Janeiro' 2 'Fevereiro' 3 'Marco' 4 'Abril' 5 'Maio' 6 'Junho' \
7 'Julho' 8 'Agosto' 9 'Setembro' 10 'Outubro' 11 'Novembro' \
12 'Dezembro' "*" 'Todo mes')
linha="$min $hora $dia $mes * novobackup"
crontab -l > temp.txt #quarda as info e envia pro crontab que fica encubido da fazer o backup
echo "$linha" >> temp.txt
crontab temp.txt
dialog --msgbox 'Agendamento concluido' 5 40
inicio
}
#-----------------------chamando a funcao incio---------------------------------------------------------------------------------------
#------------
pen (){
cd # me leva ao dir raiz
cd /mnt # entra no dir /mnt
mkdir pendrive # cria o dir pendrive
mount /dev/sdb1 pendrive # monta o pen nesse dir
cd
cd # meu dir onde esta a pasta backup
cd /home/box2redes/backup # a o dir backup que sera copiado
cp /mnt/pendrive/backup.tar backup.tar #e a pasta que backup
umount /dev/sdb1}
inicio
exit