shell脚本得到ssh远程错误
问题描述:
我想做一个远程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}"
在我的研究,我只找到了获取退出代码解决方案和返回值。
我希望有人能提前给我提示,谢谢。
答
这些错误消息正在写入stderr。您可以使用2>
或2>>
将其重定向到文件,就像您使用>
和>>
进行标准输出一样。例如:
ssh ... 2>/tmp/logerrors
请注意2和>之间没有空格。与
ssh ... &>> "${LOGFILE}"
再次,在&>
没有空间,这也可以写成>&
标准输出通过更换您的>> "${LOGFILE}"
您可以合并标准错误到同一个文件。
感谢您的非常详细的描述这是我的问题缺少的提示 – Fritz