Вызов 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 также доступен для чтения.

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


person Relja    schedule 21.10.2016    source источник
comment
Под каким пользователем работает ваш скрипт через cron? Я предполагаю (не знаю), что это другой пользователь, и что ему не хватает некоторых разрешений, которые у вас есть при входе в систему. Также, вероятно, это не проблема, но вы должны добавить некоторые кавычки для защиты от пробелов в именах файлов : --incremental-basedir="$LATEST_DUMP"   -  person cxw    schedule 21.10.2016


Ответы (1)


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

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

or

LATEST_DUMP=$(ls -td /home/power/dbbackup | head -1)
person Mustafa DOGRU    schedule 21.10.2016