Erro no comando tar [RESOLVIDO]

1. Erro no comando tar [RESOLVIDO]

Amanda Silva Bueno Menezes
mandyy

(usa Manjaro Linux)

Enviado em 04/09/2020 - 23:43h

Estou tendo problemas com o comando tar, toda vez que tento executar meu script aparece esse erro:

tar: Removendo `/' inicial dos nomes dos membros
/home/amanda/
/home/amanda/.xsession-errors
/home/amanda/Modelos/
/home/amanda/.xsession-errors.old
tar (child): backup_home_20/09/d_as_23\:40.tgz: Função open falhou: Arquivo ou diretório não encontrado
tar (child): Error is not recoverable: exiting now
tar: backup_home_20/09/d_as_23\:40.tgz: Função write falhou: Pipe quebrado
tar: Child returned status 2
tar: Error is not recoverable: exiting now
mkdir: não foi possível criar o diretório “/home/amanda/BACKUP”: Arquivo existe
mv: não foi possível obter estado de './backup_home_20/09/d_as_23:40.tgz': Arquivo ou diretório não encontrado
Backup criado com sucesso!

Ignorem o "Backup criado com sucesso!", é apenas um echo do script
Segue o script abaixo:

#!/bin/bash

hora="$(date +%H)"

if [ "$hora" -gt "11" -a "$hora" -lt "18" ]
then
echo "Boa tarde, $USER!"
fi

if [ "$hora" -gt "4" -a "$hora" -lt "12" ]
then
echo "Bom dia, $USER!"
fi

if [ "$hora" -gt "17" -a "$hora" -lt "24" ]
then
echo "Boa noite, $USER!"
fi

if [ "$hora" -gt "-1" -a "$hora" -lt "5" ]
then
echo "Boa madrugada, $USER!"
fi

if [ "$hora" -gt "-1" -a "$hora" -lt "12" ]
then
pm_ou_am="PM"
else
pm_ou_am="AM"
fi

echo "O horário atual é: $(date +%l)$pm_ou_am"
echo
echo "Deseja criar um backup da pasta home na pasta ~/backup? [S/n]"
read sim_ou_nao

case $sim_ou_nao in
s)
echo "Ok, prosseguindo com a criação do backup."
if [ -e ~/BACKUP/"backup_home*" ]
then
echo "O backup já existe, deseja criar um novo? [S/n]"
read sim_ou_nao_2
case $sim_ou_nao_2 in
s)
data_hora="$(date +%y/%m/d) as $(date +%k:%M)"
tar -cvzf "backup_home_$data_hora.tgz" ~/ && mv "./backup_home_$data_hora.tgz ~/BACKUP"
echo "Backup criado com sucesso!"
;;
n)
echo "Okay, script encerrado."
;;
*)
echo "Opção inválida! Rode o script novamente e selecione uma opção válida."
;;
esac
else
data_hora="$(date +%y/%m/d)_as_$(date +%k:%M)"
tar -cvzf "backup_home_$data_hora.tgz" ~/
mkdir ~/BACKUP
mv ./"backup_home_$data_hora.tgz" ~/BACKUP
echo "Backup criado com sucesso!"
fi
;;
n)
echo "Ok, encerrando o script."
;;
*)
echo "Opção inválida! Rode o script novamente e selecione uma opção válida."
esac



  


2. Re: Erro no comando tar [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 05/09/2020 - 09:01h


deixe assim o seu script e testa



#!/bin/bash

hora="$(date +%H)"

if [ "$hora" -gt "11" -a "$hora" -lt "18" ]
then
echo "Boa tarde, $USER!"
fi

if [ "$hora" -gt "4" -a "$hora" -lt "12" ]
then
echo "Bom dia, $USER!"
fi

if [ "$hora" -gt "17" -a "$hora" -lt "24" ]
then
echo "Boa noite, $USER!"
fi

if [ "$hora" -gt "-1" -a "$hora" -lt "5" ]
then
echo "Boa madrugada, $USER!"
fi

if [ "$hora" -gt "-1" -a "$hora" -lt "12" ]
then
pm_ou_am="PM"
else
pm_ou_am="AM"
fi

echo "O horário atual é: $(date +%l)$pm_ou_am"
echo
echo "Deseja criar um backup da pasta home na pasta ~/backup? [S/n]"
read sim_ou_nao

case $sim_ou_nao in
s)
echo "Ok, prosseguindo com a criação do backup."
if [ -e ~/BACKUP/"backup_home*" ]
then
echo "O backup já existe, deseja criar um novo? [S/n]"
read sim_ou_nao_2
case $sim_ou_nao_2 in
s)
data_hora="$(date +%y-%m-%d)"
tar -cvzf "backup_home_$data_hora.tgz" ~/ && mv "./backup_home_$data_hora.tgz ~/BACKUP"
echo "Backup criado com sucesso!"
;;
n)
echo "Okay, script encerrado."
;;
*)
echo "Opção inválida! Rode o script novamente e selecione uma opção válida."
;;
esac
else
data_hora="$(date +%y-%m-%d)"
tar -cvzf "backup_home_$data_hora.tgz" ~/
mkdir ~/BACKUP
mv ./"backup_home_$data_hora.tgz" ~/BACKUP
echo "Backup criado com sucesso!"
fi
;;
n)
echo "Ok, encerrando o script."
;;
*)
echo "Opção inválida! Rode o script novamente e selecione uma opção válida."
esac






3. Re: Erro no comando tar [RESOLVIDO]

Adriano Siqueira
adrisiq

(usa elementary OS)

Enviado em 05/09/2020 - 13:49h

Me parece que o problema está nas aspas da linha onde roda o tar, veja essa linha com calma se fechou as aspas nos lugares certos. Perceba que a cor do script está predominantemente verde, o que pode sugerir fechamento incorreto de aspas.


4. Re: Erro no comando tar [RESOLVIDO]

Amanda Silva Bueno Menezes
mandyy

(usa Manjaro Linux)

Enviado em 05/09/2020 - 20:28h

adrisiq escreveu:

Me parece que o problema está nas aspas da linha onde roda o tar, veja essa linha com calma se fechou as aspas nos lugares certos. Perceba que a cor do script está predominantemente verde, o que pode sugerir fechamento incorreto de aspas.


Encontrei o erro, tipo, tá vendo a variável $data_hora? Eu separei o ano, mês e dia por /, daí o tar tava lendo aquilo como se fosse outro diretório. Eu não sei porquê mas o mesmo ocorreu em date +%k:%M, na mesma variável, enfim, consegui concertar, obrigada a todos os envolvidos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts