2015-07-10 4 views
0

Я пытаюсь сделать удаленный mysqldump, а затем загружать его с помощью rsync, который работает хорошо, но я также хочу регистрировать удаленные ошибки, которые я сейчас вижу только на выходе терминала , Я имею в виду ошибки, подобные этой mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES?shell script get ssh удаленная ошибка

Это важная часть моего кода:

MYSQL_CMD="mysqldump -u ${MYSQL_USER} -p${MYSQL_PASS} $db -r /root/mysql_${db}.sql" 
$SSH -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST} "${MYSQL_CMD}" >> "${LOGFILE}" 

В моем исследовании я нашел только решения для получения кода выхода и возврата значения.

Я надеюсь, что кто-то может дать мне подсказку, спасибо заранее.

ответ

1

Эти сообщения об ошибках записываются в stderr. Вы можете перенаправить это в файл с помощью 2> или 2>> так же, как вы делаете для stdout с > и >>. Например:

ssh ... 2>/tmp/logerrors 

Обратите внимание, что между 2 и> нет места. Вы можете объединить STDERR в тот же файл, как стандартный вывод, заменяя ваши >> "${LOGFILE}" с

ssh ... &>> "${LOGFILE}" 

Опять же, нет места в &>, которые также могут быть записаны >&.

+0

благодарит за ваше очень подробное описание Это был недостающий совет для моей проблемы – Fritz

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