Вызов Innobackupex из bash-скрипта

У меня действительно странное поведение моей системы резервного копирования innobackupex.

Я установил все правильно, запустил несколько резервных копий с терминала, и все работает хорошо. Моя идея состоит в том, чтобы запускать инкрементные резервные копии один раз в день, поэтому я создал небольшой sh-скрипт, чтобы поместить его в cron:

#!/bin/bash
LATEST_DUMP=$(ls -t /home/power/dbbackup | head -1)
innobackupex --incremental --user=db_user --password=db_password /home/power/dbbackup/ --incremental-basedir=$LATEST_DUMP

По сути, он ищет последний дамп в папке, где хранятся приращения, и использует его для другого инкрементного дампа. Когда я пытаюсь запустить его, я получаю следующую ошибку

xtrabackup: Error: cannot open 2016-10-21_00-50-30/xtrabackup_checkpoints
xtrabackup: error: failed to read metadata from 2016-10-21_00-50-30/xtrabackup_checkpoints

Если я выполняю тот же вызов через командную строку терминала, он работает отлично. Если я попытаюсь запустить этот сценарий sh, он выдаст ошибку. Я использовал одного и того же пользователя для обоих сценариев, папки с приращениями доступны для чтения, файл xtrabackup_checkpoints также доступен для чтения.

Что мне не хватает?

1 ответ

Решение

Вы можете изменить следующую часть в вашем скрипте. LATEST_DUMP должен быть полным путем

LATEST_DUMP="/home/power/dbbackup/"$(ls -t /home/power/dbbackup | head -1)

или же

LATEST_DUMP=$(ls -td /home/power/dbbackup | head -1)
Другие вопросы по тегам