2015-07-10 124 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