erro no script

1. erro no script

leonardo
leowned

(usa Ubuntu)

Enviado em 23/11/2016 - 17:33h

linha 19:erro de sintaxe fim prematuro do arquivo

estou tentando fazer um script para a faculdade com esses seguintes parâmetros

• Desenvolva um script de backup que realize uma cópia da pasta /compartilhamentos todos os dias, as 3h00.
• O script deverá copiar o backup para um dispositivo externo. Caso o dispositivo não esteja conectado ao computador, o script deverá escrever em um arquivo de log o erro, com data e horário;
• O backup deverá ser criado utilizando tar e bzip2. O nome dos arquivos deverá obedecer o seguinte padrão Backup_DDMMAAAA.tar.bz2 (Dia, Mês e Ano), conforme a data atual. Ao final, o script deverá escrever no arquivo de log o resultado da operação (Sucesso ou Erro), com a respectiva data e horário;
• Backups com mais de 15 dias deverão ser excluídos de forma automática (esta tarefa também deverá ser registrada no arquivo de log); • Nome do arquivo de log: backup.log (localizado na pasta /root);

porem meu script esta dando esse erro: a cima

segue o script:


/backup.sh


#!/bin/bash

if mount | grep /mnt/md0 > /dev/null; then
cd /
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_`date +%d%m%Y`.tar.bz2 2> backupError_`date +%d/%m/%Y`.log
if [ $? -eq 0 ]; then
echo "Backup terminado com sucesso em `date +%d/%m/%Y %T`" > /root/backup.log
else
echo "Backup falhou!!! Verifique o arquivo backupError_`date +%d/%m/%Y`.log" /root/backup.log
fi
find /externo/* -mtime +15 -exec rm {} \;
else
echo "O dispositivo não está disponível! \r\n `date +%d/%m/%Y %T`" > deviceError_`date +%d/%m/%Y`.log
fi

crontab


0 3 * * * /backup.sh

estou usando maquina virtual:oracle VMvirutalbox



  


2. Re: erro no script

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 23/11/2016 - 17:40h

leowned escreveu:

linha 19:erro de sintaxe fim prematuro do arquivo

estou tentando fazer um script para a faculdade com esses seguintes parâmetros

• Desenvolva um script de backup que realize uma cópia da pasta /compartilhamentos todos os dias, as 3h00.
• O script deverá copiar o backup para um dispositivo externo. Caso o dispositivo não esteja conectado ao computador, o script deverá escrever em um arquivo de log o erro, com data e horário;
• O backup deverá ser criado utilizando tar e bzip2. O nome dos arquivos deverá obedecer o seguinte padrão Backup_DDMMAAAA.tar.bz2 (Dia, Mês e Ano), conforme a data atual. Ao final, o script deverá escrever no arquivo de log o resultado da operação (Sucesso ou Erro), com a respectiva data e horário;
• Backups com mais de 15 dias deverão ser excluídos de forma automática (esta tarefa também deverá ser registrada no arquivo de log); • Nome do arquivo de log: backup.log (localizado na pasta /root);

porem meu script esta dando esse erro: a cima

segue o script:


/backup.sh


#!/bin/bash

if mount | grep /mnt/md0 > /dev/null; then
cd /
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_`date +%d%m%Y`.tar.bz2 2> backupError_`date +%d/%m/%Y`.log
if [ $? -eq 0 ]; then
echo "Backup terminado com sucesso em `date +%d/%m/%Y %T`" > /root/backup.log
else
echo "Backup falhou!!! Verifique o arquivo backupError_`date +%d/%m/%Y`.log" /root/backup.log
fi
find /externo/* -mtime +15 -exec rm {} \;
else
echo "O dispositivo não está disponível! \r\n `date +%d/%m/%Y %T`" > deviceError_`date +%d/%m/%Y`.log
fi

crontab


0 3 * * * /backup.sh

estou usando maquina virtual:oracle VMvirutalbox


Boa tarde, estas linhas fazem parte do script ?

crontab


0 3 * * * /backup.sh


3. Re: erro no script

leonardo
leowned

(usa Ubuntu)

Enviado em 23/11/2016 - 18:34h

o crontab nao ja o outro e uma referencia pro tempo so



4. Re: erro no script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/11/2016 - 10:36h

leowned escreveu:

linha 19:erro de sintaxe fim prematuro do arquivo

estou tentando fazer um script para a faculdade com esses seguintes parâmetros

• Desenvolva um script de backup que realize uma cópia da pasta /compartilhamentos todos os dias, as 3h00.
• O script deverá copiar o backup para um dispositivo externo. Caso o dispositivo não esteja conectado ao computador, o script deverá escrever em um arquivo de log o erro, com data e horário;
• O backup deverá ser criado utilizando tar e bzip2. O nome dos arquivos deverá obedecer o seguinte padrão Backup_DDMMAAAA.tar.bz2 (Dia, Mês e Ano), conforme a data atual. Ao final, o script deverá escrever no arquivo de log o resultado da operação (Sucesso ou Erro), com a respectiva data e horário;
• Backups com mais de 15 dias deverão ser excluídos de forma automática (esta tarefa também deverá ser registrada no arquivo de log); • Nome do arquivo de log: backup.log (localizado na pasta /root);

porem meu script esta dando esse erro: a cima

segue o script:


/backup.sh


#!/bin/bash

if mount | grep /mnt/md0 > /dev/null; then
cd /
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_`date +%d%m%Y`.tar.bz2 2> backupError_`date +%d/%m/%Y`.log
if [ $? -eq 0 ]; then
echo "Backup terminado com sucesso em `date +%d/%m/%Y %T`" > /root/backup.log
else
echo "Backup falhou!!! Verifique o arquivo backupError_`date +%d/%m/%Y`.log" /root/backup.log
fi
find /externo/* -mtime +15 -exec rm {} \;
else
echo "O dispositivo não está disponível! \r\n `date +%d/%m/%Y %T`" > deviceError_`date +%d/%m/%Y`.log
fi

crontab


0 3 * * * /backup.sh

estou usando maquina virtual:oracle VMvirutalbox


=======================================
Bom dia Leo.
Tem erro na CONDIÇÃO do 1º "if".
Faça:
if [ $(mount | grep -o '/mnt/md0') ]; then #VERIFICA SE ESTA MONTADO
"COMANDO p/ COMPACTAR"
#VERIFICAR SE O ARQUIVO EXISTE e MANDAR MENSAGEM P/ o log
else
#DISPOSITIVO NÃO LOCALIZADO
fi

att.:
Marcelo Oliver



5. RE: ERRO NO SCRIPT

Matheus Moretti
MatheusMoretti

(usa Debian)

Enviado em 24/11/2016 - 14:30h

#!/bin/bash

DATA=$(date +%d%m%Y)
HORA=$(date +%T)

_criarBackup()
{
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_$28/12/2006.tar.bz2 2> backupError_$28/12/2006.log && \
echo "Backup terminado com sucesso em $28/12/2006_${HORA}" > /root/backup.log || \
echo "Backup falhou!!! Verifique o arquivo backupError_$28/12/2006_${HORA}.log" /root/backup.log
}

### Se o disco não existir regsitra o log e retorna 1 se existit cria o backup
_montaDisco()
{
[[ ! mount | grep /mnt/md0 ]] && echo "O dispositivo não está disponível! \r\n $28/12/2006_${HORA}" > deviceError_$28/12/2006.log && exit 1 || _criarBackup
}

### Inicio o script ###
{
find /externo/ -name "*.bz2" -mtime +15 -exec rm {} \;
_montaDisco
}


Eu usaria assim


6. Re: erro no script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/11/2016 - 14:45h

MatheusMoretti escreveu:

#!/bin/bash

DATA=$(date +%d%m%Y)
HORA=$(date +%T)

_criarBackup()
{
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_$28/12/2006.tar.bz2 2> backupError_$28/12/2006.log && \
echo "Backup terminado com sucesso em $28/12/2006_${HORA}" > /root/backup.log || \
echo "Backup falhou!!! Verifique o arquivo backupError_$28/12/2006_${HORA}.log" /root/backup.log
}

### Se o disco não existir regsitra o log e retorna 1 se existit cria o backup
_montaDisco()
{
[[ ! mount | grep /mnt/md0 ]] && echo "O dispositivo não está disponível! \r\n $28/12/2006_${HORA}" > deviceError_$28/12/2006.log && exit 1 || _criarBackup
}

### Inicio o script ###
{
find /externo/ -name "*.bz2" -mtime +15 -exec rm {} \;
_montaDisco
}
Eu usaria assim

------------------------------------------------------------------------
Boa tarde MatheusMoretti.
Com a sintaxe usada, o "test" na função "_montaDisco", acusa erro....

Marcelo Oliver




7. Re: erro no script

Matheus Moretti
MatheusMoretti

(usa Debian)

Enviado em 24/11/2016 - 18:15h

msoliver escreveu:

MatheusMoretti escreveu:

#!/bin/bash

DATA=$(date +%d%m%Y)
HORA=$(date +%T)

_criarBackup()
{
tar -cvjSf Compartilhamentos.tar.bz2 /externo/Backup_$28/12/2006.tar.bz2 2> backupError_$28/12/2006.log && \
echo "Backup terminado com sucesso em $28/12/2006_${HORA}" > /root/backup.log || \
echo "Backup falhou!!! Verifique o arquivo backupError_$28/12/2006_${HORA}.log" /root/backup.log
}

### Se o disco não existir regsitra o log e retorna 1 se existit cria o backup
_montaDisco()
{
[[ ! mount | grep /mnt/md0 ]] && echo "O dispositivo não está disponível! \r\n $28/12/2006_${HORA}" > deviceError_$28/12/2006.log && exit 1 || _criarBackup
}

### Inicio o script ###
{
find /externo/ -name "*.bz2" -mtime +15 -exec rm {} \;
_montaDisco
}
Eu usaria assim

------------------------------------------------------------------------
Boa tarde MatheusMoretti.
Com a sintaxe usada, o "test" na função "_montaDisco", acusa erro....

Marcelo Oliver



Boa tarde Marcelo,
Realmente fiz um teste aqui e deu erro , é necessario alterar a linha para esta:
[[ ! $(mount | grep /mnt/md0) ]] && echo "O dispositivo não está disponível! \r\n $DATA_${HORA}" > deviceError_$DATA.log && exit 1 || _criarBackup

Fiz o teste aqui e me parece que funcionou
Agradeço pela ajuda






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts