2016-11-22 2 views
-1

У меня есть сценарий sh для резервного копирования сервера базы данных.mysqldump in sh скрипт не работает

#!/bin/bash 
mysqldump -u <username> -p<password> --all-databases --single-transaction --opt > /home/backup/h_157_2-1.sql 
rsync -zrp --partial /home/backup/h_157_2-1.sql [email protected]<server-ip>:/home/backup/H_157_2/ 

Когда я выполняю эти две команды самостоятельно в командной строке, они работают, как и ожидалось, и я получаю .sql файл с содержимым. Но когда я выполняю скрипт файл содержит только это:

Usage: mysqldump [OPTIONS] database [tables] 
OR  mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 
OR  mysqldump [OPTIONS] --all-databases [OPTIONS] 
For more options, use mysqldump --help 

Я уже пытался изменить вверх порядок опций или оставить из --opt, но результат был все тот же. Итак, что может заставить команду не работать в скрипте?

+0

У вас возникла ошибка в синтаксисе mysqldump, поэтому файл заполнен результатом команды 'mysqldump' –

+0

@ElzoValugi, что это за ошибка? И почему это работает, когда я копирую команду в строку comand и выполняю ее? – DocRattie

+0

попробуйте '-A' вместо' -all-databases'. это сработало для меня –

ответ

0

Я не мог найти способ решить начальную проблему. Даже при помощи Elzo Valugi в чате результат все тот же: Excecuted в командной строке mysqldump работал finde. Исключенный в скрипте, я все время получал то же самое. (см. первоначальный вопрос).

Чтобы решить эту проблему, я построил обходное решение, чтобы сбрасывать каждую базу данных самостоятельно.

#!/bin/sh 
for dir in /var/lib/mysql/*/; 
do 
    dir=${dir%*/} 
    mysqldump -u <user> -p<password> ${dir##*/} --single-transaction --opt > /home/backup/h_157_2_${dir##*/}.sql 
    rsync -zrp --partial /home/backup/h_157_2_${dir##*/}.sql [email protected]<server-ip>:/home/backup/H_157_2/ 
done; 

С этим я проходным все directorys в каталоге хранения MySQL, сократить их на имя-дир и использовать его для туздЫшпр. Это ставит каждую базу данных в свой собственный файл. Я думаю, что это можно решить, чтобы объединить их все в один, но для моих нужд я в порядке с разными файлами.

Смежные вопросы