Rsync bash 스크립트 오류(보내기: 명령을 찾을 수 없음)

Rsync bash 스크립트 오류(보내기: 명령을 찾을 수 없음)

내 서버에는 대부분 작동하는 백업 스크립트가 있습니다. rsync 명령만 로그에 오류를 발생시키고 해결책을 찾을 수 없습니다.

이것은부분내 스크립트(작업 내용을 제거했습니다):

#!/bin/bash

TIMESTAMP=`date +%Y%m%d_%H%M`
BKROOT="/home/roots/backups"
BKDIR="/home/roots/backups/$TIMESTAMP"

LOG="$BKROOT/backup_$TIMESTAMP.log"

function log () 
{
    now=$(date +"%T")
    echo -e "$now: $1"
}

echo -e "Starting backup..."

if [ ! -d "$BKDIR" ]; then
        echo -e "Creating Backup directory $BKDIR..."
        mkdir -p $BKDIR
        mkdir -p $BKDIR/games
        mkdir -p $BKDIR/games/minecraft
fi

# Redirect all output to log
exec >> $LOG 
exec 2>&1

log "Saving Minecraft..."
`/usr/bin/rsync -av /var/games/minecraft $BKDIR/games/minecraft --exclude 'plugins/dynmap/web'`
log

# Sleeping 10 seconds to allow file access
sleep 10

# Compressing backup
log "Compressing backup to $BKROOT/backup_$TIMESTAMP.tar.gz..."
`/bin/tar czvfP $BKROOT/backup_$TIMESTAMP.tar.gz "$BKDIR"`
if [[ $? != 0 ]]; then
    log "Error during compression"
else 
    log "Compression OK"
fi

# Uploading backup to Backup storage
log "Uploading backup and log to Backup storage..."
`/usr/bin/scp $BKROOT/backup_$TIMESTAMP.tar.gz [email protected]:/`
if [[ $? != 0 ]]; then
    log "Error during upload of backup"
else 
    log "Uploading of backup OK"
fi
`scp $LOG [email protected]:/`
if [[ $? != 0 ]]; then
    log "Error during upload of backup log"
else 
    log "Uploading of backup log OK"
fi
log

TIMEEND=`date "+%m/%d/%Y @ %H:%M"`

# Logging free space on backup location
echo 'df -h' | sftp [email protected]

# Sending mail
`echo "Done" | mutt -s "Backup completed on $TIMEEND" -i $LOG [email protected]`

# Removing backup folder
echo -e "Removing temporary folder"
log "Removing temporary folder..."
`rm $BKDIR -rf`

스크립트는 cronjob을 통해 루트로 실행됩니다. rsync 명령을 제외하고 모든 것이 잘 작동합니다. 각각은 로그 파일에 다음 오류를 기록합니다.

20:19:38: Minecraft 저장 중...
/home/roots/scripts/backup.sh: 126행: 보내기: 명령을 찾을 수 없음
20:21:07:
20:21:40:
www 데이터 파일 백업 /home / root/scripts/backup.sh: 141행: 보내기: 명령을 찾을 수 없음
/home/roots/scripts/backup.sh: 142행: 보내기: 명령을 찾을 수 없음
20:22:58:
20:23:03: FHEM 백업 복사 중
/home/roots/scripts/backup.sh: 157행: 보내기: 명령을 찾을 수 없음

4개의 rsync 명령은 모두 소스 및 대상 경로를 제외하고 정확히 동일한 매개변수를 갖습니다.

서버는 Ubuntu 16.04.2 LTS(Xenial Xerus)를 실행합니다.

내가 뭘 잘못하고 있는지 아는 사람 있나요?

답변1

다음과 같은 줄이 있습니다.

`/usr/bin/rsync -av /var/games/minecraft $BKDIR/games/minecraft --exclude 'plugins/dynmap/web'`

백틱은 다음을 의미합니다.실행 명령의 출력그들 사이에. 따라서 rsync명령이 실행되고 일부 출력이 생성되며 쉘은이 출력을 실행해 보세요. 백틱만 제거하세요.

/usr/bin/rsync -av /var/games/minecraft $BKDIR/games/minecraft --exclude 'plugins/dynmap/web'

관련 정보