Вызов 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)