0

我正在尝试运行 sshpass 工具来自动执行 sftp 操作。

在另一台服务器上,该命令有效,但在该服务器上它只返回一行错误消息。

这是我正在使用的命令:

sshpass -p Password sftp Uname@Host

我得到了错误:

Failed to get a pseudo terminal: Success

我已经用许多不同的主机和 root 用户尝试过它,我可以毫无问题地 sftp,所以我很确定它是 sshpass 或伪终端问题。

我对伪终端知之甚少,似乎找不到任何有关错误的信息。文件夹 /dev/pts 为空, cat /proc/sys/kernel/pty/nr 为 0,我认为这意味着没有任何运行。从 ptya0 到 ptyzf 共有 256 个 pty** 项目,这让我相信我可能已经达到了伪终端数量的限制。我认为我的最大终端数(通过查看 cat /proc/sys/kernel/pty/max)是 4096。

有没有其他人遇到过这个错误或知道可能出了什么问题?它是一个生产服务器,所以我不能让它停机。对此的任何帮助将不胜感激。

4

1 回答 1

1

弄清楚了。对于遇到类似错误的任何人,pts 目录由于某种原因被卸载。执行以下操作可以解决问题:

rm -rf /dev/ptmx
mknod /dev/ptmx c 5 2
chmod 666 /dev/ptmx 
umount /dev/pts
rm -rf /dev/pts
mkdir /dev/pts
vim /etc/fstab
    (added: none  /dev/pts  devpts  defaults 0 0)
mount /dev/pts
于 2012-07-06T19:32:38.843 回答