Por que um script bash criaria um arquivo com o nome de uma das minhas variáveis?

1

Estou usando este script bash para manter 3 backups do meu servidor. Por algum motivo, ele cria aleatoriamente um arquivo vazio com o nome de uma das minhas variáveis. O nome da variável escolhido é aparentemente aleatório e não cria o arquivo todas as vezes que é executado.

Estou executando o Ubuntu Server 16.04LTS

O script funciona perfeitamente como pretendido. Eu só estou querendo saber porque o bash cria o arquivo algumas vezes.

NOTA: omiti algumas informações confidenciais, como o endereço do Samba e a localização das credenciais do CIFS. Isso foi intencional e está correto no meu script atual.

Estou executando este script a partir de um cron job com o comando bash backup.bash , então o bash é explicitamente usado para executar o script

#!/bin/bash

## The number of backups that we want to keep
MAX_BACKUPS=3

## The directory to store the backups
BACKUP_DIR="OMITTED"

## The address of the Samba Share
REMOTE_ADDR="OMITTED"

## What we want to name the backup
BACKUP_NAME="$(date +"%m_%d_%Y")_backup.tar.gz"

## Mount the Samba Share to the backup directory
mount -t cifs -o credentials=OMITTED,noperm $REMOTE_ADDR $BACKUP_DIR

## Make todays backup
tar -cpzvf $BACKUP_DIR/$BACKUP_NAME --exclude-from=/backup_scripts/backup.exclude /

## The number of backups that we now have
COUNT="$(find $BACKUP_DIR -maxdepth 1 -type f -name '*_backup.tar.gz' | wc -l )"

## If we have more backups than MAX_BACKUPS
if ((COUNT > MAX_BACKUPS)); then
  ## Delete the oldest file (DETERMINED BY MODIFICATION DATE)
  cd $BACKUP_DIR
  rm "$(ls -t | tail -1)"
fi

# Unmount the Samba Share for safety
umount $BACKUP_DIR
    
por Native Coder 16.12.2017 / 16:24

1 resposta

2

Editar: como @ StéphaneChazelas apontou, o problema é que o seu script não está sendo chamado com bash e a construção (( )) não funcionará. Tente executá-lo a partir de um bash shell ou com bash my_script.sh

Além disso, esse rm tem o potencial de falhar espetacularmente. Por favor, leia esta FAQ .

    
por 18.12.2017 / 17:46