shell 脚本获取 ssh 远程错误
shell script get ssh remote error
我正在尝试制作一个远程 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}"
在我的研究中,我只找到了获取退出代码和 return 值的解决方案。
希望有人能给我指点,先谢谢了。
这些错误消息正在写入 stderr。您可以使用 2>
或 2>>
将其重定向到一个文件,就像您使用 >
和 >>
对 stdout 所做的一样。例如:
ssh ... 2>/tmp/logerrors
注意 2 和 > 之间没有 space。您可以通过将 >> "${LOGFILE}"
替换为
将 stderr 合并到与 stdout 相同的文件中
ssh ... &>> "${LOGFILE}"
同样,&>
中没有space,也可以写成>&
。
我正在尝试制作一个远程 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}"
在我的研究中,我只找到了获取退出代码和 return 值的解决方案。
希望有人能给我指点,先谢谢了。
这些错误消息正在写入 stderr。您可以使用 2>
或 2>>
将其重定向到一个文件,就像您使用 >
和 >>
对 stdout 所做的一样。例如:
ssh ... 2>/tmp/logerrors
注意 2 和 > 之间没有 space。您可以通过将 >> "${LOGFILE}"
替换为
ssh ... &>> "${LOGFILE}"
同样,&>
中没有space,也可以写成>&
。