Putty (plink) - 在远程Linux服务器上执行Python

0 投票
2 回答
4029 浏览
提问于 2025-04-17 14:10

我有一台运行Ubuntu的服务器,上面有一个Python脚本,这个脚本可以通过命令行来操作。我使用plink工具登录服务器,并立即执行这个Python脚本:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "python server.py"

但是,我收到了以下信息:

TERM environment variable not set.

于是,我在Ubuntu机器上创建了一个sh脚本(server.sh):

export TERM=xterm
python server.py

然后我使用以下的plink命令:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "sh server.sh"

现在我不再收到警告了,似乎Python脚本也在执行。但是,我在Python脚本中打印的终端界面并没有显示出来,而是只打印了以下字符:

←[H←[2J

奇怪的是,当我用Putty手动登录并执行Python脚本时,一切都正常。我尝试在plink中添加-t选项,这样脚本就能执行了。但是我在打印终端文本时使用了颜色,结果颜色只是以文本的形式显示,而没有像在Putty中那样改变文本的颜色。

有没有什么建议我可以尝试的?

2 个回答

0

我也遇到过同样的问题,在执行命令之前设置一下TERM这个变量,就解决了那个TERM环境变量未设置的错误提示:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "export TERM=xterm; python server.py"

这样做很方便,如果你不能修改.profile文件的话...

1

你不需要把这个做成一个Python脚本。

你可以直接修改 .profile 文件——这个文件在每次登录时系统都会执行——用你在Python脚本中使用的相同表达式。

export TERM=xterm

(如果你使用的是bash的话)

setnv TERM xterm

(对于c-shell和类似的情况)

撰写回答