저는 완전한 BASH 초보자이고 이 스크립트가 작동하는지 확인해야 합니다. Azure Blob Storage에서 Evenstore 백업을 복원해야 합니다. 불행히도 작동하지 않습니다.
ShellCheck에서 실행하면 다음과 같습니다.
Line 14:
export AZURE_STORAGE_KEY=<Insert key>
^-- SC1009 (info): The mentioned syntax error was in this simple command.
^-- SC1073 (error): Couldn't parse this variable assignment. Fix to allow more checks.
^-- SC1072 (error): Fix any mentioned problems and try again.
실제로 실행해 보면 다음과 같습니다.
restore_eventstore.sh: line 14: syntax error near unexpected token `newline'
restore_eventstore.sh: line 14: `export AZURE_STORAGE_KEY=<Insert key>'
이러한 오류를 검색했지만 내 사례에 대한 답변을 찾을 수 없습니다. 도움을 주시면 감사하겠습니다. 전체 스크립트는 다음과 같습니다.
#!/bin/bash
# Needs azure cli to work.
# Install command: curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
backup_name=$1
if [ -z "$backup_name" ]
then
echo "Must supply an file to use in the restore"
exit
fi
export AZURE_STORAGE_ACCOUNT=stoclbackups
export AZURE_STORAGE_KEY=<Insert key>
echo "Downloading backup $backup_name from blob storage"
az storage blob download --container-name node1backups --name $backup_name --file $backup_name
if [ ! -s "$backup_name" ]
then
echo "Failed to download the backup file $backup_name"
exit
fi
echo "Stopping the eventstore service"
systemctl stop eventstore
if [ -d eventstore_backup ]
then
echo "Removing old local eventstore backup"
rm -rf eventstore_backup
fi
echo "Doing an backup of the current db to eventstore_backup"
mkdir eventstore_backup
cp -r db/* eventstore_backup
echo "Removing the old data from eventstore db directory"
rm -rf db/*
echo "Unpacking the backup $backup_name into the eventstore db directory"
tar -zvxf $backup_name -C db/
echo "Truncate the eventstore data to the latest chaser checkpoint"
cp db/chaser.chk db/truncate.chk
echo "Restore is complete. Start the eventstore service with: sudo systemctl start eventstore"
답변1
사용된 값은 를 AZURE_STORAGE_KEY
나타내는 자리 표시자 텍스트 문자열입니다 <Insert Key>
. 이를 Azure Storage 계정의 실제 키로 바꿔야 합니다.