Putty (plink) - 在远程Linux服务器上执行Python
我有一台运行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和类似的情况)