bashスクリプトが私の変数名の1つに名前を付けたファイルを生成するのはなぜですか?

bashスクリプトが私の変数名の1つに名前を付けたファイルを生成するのはなぜですか?

私はこのbashスクリプトを使って私のサーバーの3つのバックアップを維持しています。何らかの理由で、私の変数の1つの名前で空のファイルをランダムに生成します。選択した変数名はランダムに表示され、実行されるたびにファイルは生成されません。

Ubuntu Server 16.04LTSを実行しています。

スクリプトは期待どおりに完全に動作します。私はbashが時々そのファイルを生成する理由を知りたいです。

注:Sambaアドレス、CIFS資格情報の場所など、一部の機密情報は省略しています。これは意図的なものであり、実際のスクリプトでは正確です。

bash backup.bashbashを使用して明示的にコマンドを使用して、cronジョブでこのスクリプトを実行します。

#!/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

答え1

編集:@StéphaneChazelasが指摘したように、問題はスクリプトが呼び出されず、設定が機能しないことbashです(( ))bashシェルで試してみてください。bash my_script.sh

そしてこれがひどく失敗する可能性もありますrm。読んでくださいこのFAQ

関連情報