Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum wird der `tcgetattr`-Fehler angezeigt, wenn ssh zum Sichern der Sicherungsdatei auf einem anderen Server verwendet wird?

Ich habe diesen Fehler beim Erzwingen der Pseudo-Terminal-Zuweisung mit ssh -t -t gesehen oder ssh -tt .

Der tcgetattr Die Funktion wird verwendet, um die Attribute des Pseudoterminals nachzuschlagen, das durch einen Dateideskriptor dargestellt wird. Es braucht einen Dateideskriptor und einen Zeiger auf eine termios-Struktur, um die Terminal-Metadaten darin zu speichern. Es sieht für mich aus dem Stub-Code in glibc dass dieser Fehler einen Nullzeiger für termios darstellt Struktur. Ich bin mir nicht sicher, ob diese gleiche Fehlerbehandlungssemantik für die plattformspezifischen Implementierungen von tcgetattr vorhanden ist .

Wenn Sie diesen Fehler unterdrücken möchten, rufen Sie ssh auf etwa so:

ssh 2>/dev/null

Dadurch wird STDERR nach /dev/null umgeleitet; Sie werden den Fehler beim Aufrufen mit dieser Umleitung nicht sehen. Beachten Sie, dass dadurch andere Fehler mit ssh maskiert werden; Möglicherweise müssen Sie dies zu Debugging-Zwecken entfernen.