Salva eu... [RESOLVIDO]

1. Salva eu... [RESOLVIDO]

Vitor Silva
Rotivvitor

(usa Debian)

Enviado em 15/06/2016 - 13:43h

Como apagar uma pasta com arquivos dentro dela sem saber o nome da pasta??
alguém pode me ajudar??
é a única coisa que falta para meu script rodar.


  


2. Re: Salva eu... [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 15/06/2016 - 14:11h

Como assim? Tem como ser mais especifico pois sem saber o nome da pasta não dá.





=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





3. Re: Salva eu... [RESOLVIDO]

Vitor Silva
Rotivvitor

(usa Debian)

Enviado em 15/06/2016 - 14:36h

eu estou fazendo um script de backup e falta um comando para remover de dentro de um diretório pastas que vão ser criadas e arquivos é isso .



4. Re: Salva eu... [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 15/06/2016 - 14:46h

Adicione uma função no seu script mais ou menos assim:
function Delete()
{
while read LINE; do
rm -rf /mnt/"$LINE" &>/dev/null
done < /tmp/backup.txt
rm /tmp/backup.txt &>/dev/null
}







=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





5. Re: Salva eu... [RESOLVIDO]

Vitor Silva
Rotivvitor

(usa Debian)

Enviado em 15/06/2016 - 14:56h

backup
#
Cliente="/home/cliente"
Copia="/home/copia"
#
ls -l /home/cliente/* > usuario.txt
ls -l /home/copia > servidor.txt
#
if [[ $(cat usuario.txt) != $(cat servidor.txt) ]]; then
cp -r $cliente $copia
echo "tranferindo arquivo"
else
[[ $(cat usuario.txt) = $(cat servidor.txt) ]];
rm -r /home/copia/*
cp -r $cliente $copia
fi
#
o script está assim, mas não está removendo tudo da pasta. Qual sua opinião para dar uma ajuda aí??


6. Re: Salva eu...

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 15/06/2016 - 15:01h

Olha este aqui e veja se te ajuda, se sim dê permissão e execute assim: ./backup.sh /midia/de/backup /diretório/a/salvar
se acaso a mídia ou disco rígido estiver desmontado ele monta faz o backup recursivamente, empacota e compacta.

#!/bin/bash

YELLOW="\033[1;33m"
RESCOLOR="\e[0m"
DEVICE="$1"
ORIGIN="$2"

# Animação
function Anime()
{
i=1
while [[ ! -z $(ps | grep -w $! 2>/dev/null) ]]; do
printf "$INFO [..........] $RESCOLOR" | sed "s/\./\#/$i"
printf '\b%.0s' {1..150}
sleep 0.10
if [ "$i" -gt 9 ]; then
i=1
else
((i++))
fi
done
printf "$INFO [..........]"$YELLOW" Pronto! "$RESCOLOR" \n" | sed 's/\./\#/g'
}


# checagem de itens necessários
function ChekList()
{
INFO="Checando dependências"
local LISTA=("rsync" "tar" "bzip2")
for (( i=0; i < ${#LISTA[*]} ; i++ )); do
if [ -z $(which "${LISTA[$i]}") ]; then
printf "${LISTA[$i]} "$YELLOW"Não instalado"$RESCOLOR"\n"
exit 1;
fi
sleep 1
done & Anime
}


# Cheacgem e montagem do dispositivo
function CheckMount()
{
if fdisk -l | grep $DEVICE &>/dev/null; then
if ! mount | grep $DEVICE &>/dev/null; then
if [ -d /mnt ]; then
INFO="Montando $DEVICE"
mount "$DEVICE" /mnt & Anime
else
INFO="Criando diretório /mnt"
mkdir /mnt & Anime
INFO="Montando $DEVICE"
mount "$DEVICE" /mnt & Anime
fi
else
case $(df -h | grep $DEVICE | awk '{print $NF}') in
/mnt) printf "$DEVICE já está montado em "$YELLOW"$(df -h | grep $DEVICE | awk '{print $NF}') $RESCOLOR\n";;

*) INFO="Desmontando $DEVICE"
umount "$DEVICE" &>/dev/null & Anime
INFO="Montando $DEVICE em /mnt"
mount "$DEVICE" /mnt & Anime;;
esac
fi
else
printf "$DEVICE: não encontrado\n"
exit 127;
fi
}

# Função para deletar residuos apos o backup e compactação.
function Delete()
{
while read LINE; do
if [ $LINE != "BKP*" ]; then
rm -rf /mnt/"$LINE" &>/dev/null
fi
done < /tmp/backup.txt
rm /tmp/backup.txt &>/dev/null
umount $DEVICE &>/dev/null

}

# Função para realizar o backup
function Backup()
{
if [ ! -e "$ORIGIN" ]; then
printf "\nErro: 127 arquivo ou diretório não encontrado\n\n"
exit 127;
else
ChekList
CheckMount
INFO="Realizando backup"
rsync -aAX --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*"} "$ORIGIN" /mnt/ &>/dev/null & Anime
ls -a /mnt > /tmp/backup.txt
INFO="Empacotando"
tar -cf /mnt/BKP_$(date +%d-%h-%Y_%X).tar /mnt/ &>/dev/null & Anime
INFO="Comprimindo backup"
bzip2 -z --best /mnt/*.tar &>/dev/null & Anime
if [ $? == 0 ]; then
INFO="Limpando residuos"
Delete & Anime
exit 0;
fi
fi
}

if [ -f "$ORIGIN" ]; then
Backup
else
if echo $ORIGIN | egrep '/$' &>/dev/null; then
Backup
else
ORIGIN=$ORIGIN/
Backup
fi
fi





=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





7. Re: Salva eu... [RESOLVIDO]

Vitor Silva
Rotivvitor

(usa Debian)

Enviado em 15/06/2016 - 15:05h

não posso usar rsync isso é um trabalho de faculdade então esse script não vai dar certo para mim eu acho.


8. Re: Salva eu... [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 15/06/2016 - 15:15h

Nesta parte

rm -r /home/copia/*

tente com rm -rf

rm -rf /home/copia/*


9. Re: Salva eu... [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 15/06/2016 - 15:16h

Use somente a parte da exclusão dos arquivos onde eu faço uma lista em /tmp e depois uso está lista para deletar todos os arquivos gerado pelo rsync depois de compactar




=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





10. Resolvido

Vitor Silva
Rotivvitor

(usa Debian)

Enviado em 15/06/2016 - 15:45h

Obrigado pela ajuda, mas agora deu certo vou mostrar como ficou.

#!/usr/bin/ksh
#backup
#
CLIENTE="/home/cliente"
COPIA="/home/copia"
#
ls -l /home/cliente/* > usuario.txt
ls -l /home/copia > servidor.txt
#
if [[ $(cat usuario.txt) != $(cat servidor.txt) ]]; then
rm -rf /home/copia/*
cp -r $cliente $copia
echo "transferindo arquivo"
fi
#
funcionou certo agora obrigado pela ajuda pessoal.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts