2015-07-10 99 views
0

我想做一个远程mysqldump,然后用rsync下载它,这一切都很好,但我也想记录远程错误,我现在只能在终端输出中看到。 我的意思是这样mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES?shell脚本得到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>>将其重定向到文件,就像您使用>>>进行标准输出一样。例如:

ssh ... 2>/tmp/logerrors 

请注意2和>之间没有空格。与

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

再次,在&>没有空间,这也可以写成>&标准输出通过更换您的>> "${LOGFILE}"您可以合并标准错误到同一个文件。

+0

感谢您的非常详细的描述这是我的问题缺少的提示 – Fritz