为什么使用 ssh 将备份文件转储到另一台服务器时会出现“tcgetattr”错误?

2024-03-23

我想将表备份转储到另一台服务器上,并且我正在使用 ssh 来执行此操作。 当我运行以下命令时,它会给出错误,但转储文件已复制到目标。

mysqldump -u username -ppassword dbname tablename | ssh -t -t servers_username@domain_name 'cat > /tmp/bckp.sql';

tcgetattr:参数无效

If I press CTRL+c then it appends error message with Killed by signal 2.

为什么会出现这个错误呢?


我在使用强制伪终端分配时看到了此错误ssh -t -t or ssh -tt.

The tcgetattr函数用于查找由文件描述符表示的伪终端的属性;它需要一个文件描述符和一个指向 termios 结构的指针来存储终端元数据。glibc 中的存根代码 https://github.com/rbdixon/glibc/blob/master/termios/tcgetattr.c该错误代表空指针termios结构。我不确定这些相同的错误处理语义是否适用于特定于平台的实现tcgetattr.

如果您想抑制此错误,请调用ssh像这样:

ssh 2>/dev/null

这会将 STDERR 重定向到/dev/null;使用此重定向调用时您不会看到错误。请注意,这将掩盖其他错误ssh;您可能需要删除它以进行调试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用 ssh 将备份文件转储到另一台服务器时会出现“tcgetattr”错误? 的相关文章

随机推荐