我正在尝试创建一个远程mysqldump,然后使用rsync下载它,这一切都运行良好,但我也想记录我得到的远程错误,我现在只在终端输出中看到。
我指的是像mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES?
这是我的代码的重要部分:
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}"
在我的研究中,我只找到了获取退出代码和返回值的解决方案。
我希望有人能提前给我一个提示。
答案 0 :(得分:1)
这些错误消息正在写入 stderr 。您可以使用2>
或2>>
将其重定向到文件,就像使用>
和>>
的stdout一样。例如:
ssh ... 2>/tmp/logerrors
注意2和>之间没有空格。通过将>> "${LOGFILE}"
替换为
ssh ... &>> "${LOGFILE}"
同样,&>
中没有空格,也可以写成>&
。