Compactar diretório de backup usando o shell script

0

Estou escrevendo um script de shell para backup de dados. Meu script Backup de dados com êxito.But Diretório não compactado.Eu não consigo encontrar o que estava errado meu shell script

MONGO_DATABASE="database"
APP_NAME="appname"
MONGO_HOST="localhost"
MONGO_PORT="port"
MONGO_USER=""
MONGO_PASS=""
TIMESTAMP='date "+%Y-%m-%d-%H-%M-%S"'
MONGODUMP_PATH="mongopath"
BACKUPS_DIR="backup path"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
# mongo admin --eval "printjson(db.fsyncLock())"
$MONGODUMP_PATH --host $MONGO_HOST  -d $MONGO_DATABASE --port $MONGO_PORT 
#$MONGODUMP_PATH -d $MONGO_DATABASE
# mongo admin --eval "printjson(db.fsyncUnlock())"

mkdir -p $BACKUPS_DIR
#tar -cvf filename.tar files/directories
mv dump $BACKUP_NAME* $BACKUPS_DIR
tar -cvz -f $BACKUP_NAME.tar.gz $BACKUP_NAME
find $BACKUP_NAME -type d -ctime +10 | xargs rm -rf
#rm -rf $BACKUP_NAME
    
por Shah Jalal 26.08.2017 / 11:51

1 resposta

2

A questão é com estas duas linhas:

mv dump $BACKUP_NAME* $BACKUPS_DIR
tar -cvz -f $BACKUP_NAME.tar.gz $BACKUP_NAME

Observe que você está movendo dump e $BACKUP_NAME* do diretório atual com mv na primeira linha e depois tente adicionar $BACKUP_NAME* do diretório atual a um arquivo no segundo.

Meu sentimento é que você pode querer usar

mv dump "$BACKUP_NAME"* "$BACKUPS_DIR"
tar -cvz -f "$BACKUP_NAME.tar.gz" "$BACKUPS_DIR"

Isso cria um arquivo tar do diretório $BACKUPS_DIR . No entanto, não sei por que você tem $BACKUP_NAME* na primeira linha, pois não vejo nada criando arquivos com esse nome ... (mas talvez esteja faltando alguma coisa).

Além disso, considere citar suas expansões de variáveis como fiz acima, em todo o script. Isso é especialmente importante se você usar nomes de arquivos ou diretórios que contenham espaços.

    
por 26.08.2017 / 12:08

Tags