2016-10-21 7 views
2

Я испытываю действительно странное поведение моей системы резервного копирования innobackupex.Innobackupex call from bash script

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

#!/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 также читаем.

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

+0

Что пользователь ваш скрипт работает как через 'cron'? Я предполагаю (не знаю), что это другой пользователь от вашего, и что он не имеет некоторых разрешений, которые у вас есть при входе в систему. Кроме того, возможно, это не проблема, но вы должны добавить некоторые цитаты для обеспечения безопасности от пробелов в именах файлов : '--incremental-basedir =" $ LATEST_DUMP "' – cxw

ответ

3

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

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

или

LATEST_DUMP=$(ls -td /home/power/dbbackup | head -1) 
+0

Не могу поверить, что я пропустил это, спасибо! – Relja