Shell Script - Criação de um script de Backup com o p7zip ou 7za e compactar somente as subpastas de um diretório.

|

Para realizar um script de backup com a utilização do p7zip ou 7zip, é necessário informar o caminho onde fica o bin do 7zip "/usr/local/bin/7za" pois se utilizar somente o comando "7za" no script, não irá funcionar utilizando o cron para iniciar o script. Portanto para utilizar o p7zip no cron do linux é necessário passar todo o caminho do bin (7za).
Para realizar o backup por de um diretório e compactando somente as subpastas, utilizei o script abaixo.

#!/bin/sh
# Para melhor visualização do script irei colocar variáveis no script.
# Para informar que é uma viável é só colocar um $ antes da variável.
# Para exempĺo irei realizar a compactação da pasta /root e irei colocar os arquivos de backup em /BKP.


##### Setando as variáveis
# Arquivos de backup.
BKP_PASTA=/BKP/

# Temporário para ler as pastas do diretório.
TMP=/BKP/txt.tmp

# Setando a variável "x" para 1 (Esse onde ele começa a pegar a linha)
x=1

# Captura o número de pastas. (no caso no /root/) 
N_PASTAS=$(ls -d /root/*/ |wc -l)


### Inicio do Script
cd /root
# Captura as pastas do diretório (no caso o /root)
ls -d * > $TMP

# Utilizo o while para ele percorrer as linhas da variável TMP para realizar o backup das pastas
while [ $x -le $N_PASTAS ];
do

# Neste ponto ele lê a linha onde a variável "x" onde está apontado
L_TMP=$(cat $TMP | head -n $x | tail -n 1);

# Realiza o processo de compactação com o 7za
# Como dito, para a utilização do p7zip ou 7za deve-de fazer da forma abaixo
# Neste ponto ele faz a compactação e joga para o diretório de Backup definido anteriormente e compacta a pasta onde o "x" está apontando.
/usr/local/bin/7za a -sfx -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on tar -jcvf $BKP_PASTA$L_TMP.exe  /root/$L_TMP 

# Incrementa mais 1 no x, fazendo assim pulando para a pŕoxima linha.
x=$((x+1));
}

done; # Sai do While

##### FIM

3 comentários:

Claudemir L. Galatti disse...

Muito bom valeu pela dica

Poteomestre disse...

Será muito útil para mim! :D Valeu!

Michel L. Campi disse...
Este comentário foi removido por um administrador do blog.

Postar um comentário