首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Paramiko exec_command标准输出、标准错误、标准输入到日志记录器

Paramiko是一个用于Python的SSHv2协议的实现库,它提供了一种在远程服务器上执行命令和传输文件的方式。其中,exec_command方法是Paramiko库中的一个函数,用于在远程服务器上执行命令。

在使用Paramiko的exec_command方法执行命令时,可以通过以下方式将标准输出、标准错误和标准输入重定向到日志记录器:

  1. 标准输出(stdout):通过调用exec_command方法后返回的stdout通道对象,可以获取命令执行的标准输出结果。可以将stdout通道对象的输出内容记录到日志记录器中,以便后续查看和分析。具体实现代码如下:
代码语言:txt
复制
import paramiko
import logging

# 创建SSH客户端
client = paramiko.SSHClient()
# 连接远程服务器
client.connect('hostname', username='username', password='password')

# 执行命令
stdin, stdout, stderr = client.exec_command('command')

# 将标准输出记录到日志
logging.info(stdout.read().decode())

# 关闭SSH连接
client.close()
  1. 标准错误(stderr):通过调用exec_command方法后返回的stderr通道对象,可以获取命令执行的标准错误输出结果。同样地,可以将stderr通道对象的输出内容记录到日志记录器中。具体实现代码如下:
代码语言:txt
复制
import paramiko
import logging

# 创建SSH客户端
client = paramiko.SSHClient()
# 连接远程服务器
client.connect('hostname', username='username', password='password')

# 执行命令
stdin, stdout, stderr = client.exec_command('command')

# 将标准错误记录到日志
logging.error(stderr.read().decode())

# 关闭SSH连接
client.close()
  1. 标准输入(stdin):exec_command方法主要用于执行命令并获取输出结果,一般情况下不需要将标准输入重定向到日志记录器。标准输入通常用于向远程服务器发送输入数据,例如需要输入密码或确认信息时。如果需要将标准输入重定向到日志记录器,可以通过stdin通道对象的write方法将输入内容写入日志。具体实现代码如下:
代码语言:txt
复制
import paramiko
import logging

# 创建SSH客户端
client = paramiko.SSHClient()
# 连接远程服务器
client.connect('hostname', username='username', password='password')

# 执行命令
stdin, stdout, stderr = client.exec_command('command')

# 将标准输入记录到日志
logging.info('Input: {}'.format('input_data'))

# 关闭SSH连接
client.close()

总结: Paramiko的exec_command方法可以执行远程服务器上的命令,并通过stdout和stderr通道对象获取命令的标准输出和标准错误输出。可以将这些输出内容记录到日志记录器中,以便后续查看和分析。标准输入通道对象一般用于向远程服务器发送输入数据,不常需要记录到日志中。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供弹性、安全、稳定的云服务器实例,可满足各种计算需求。产品介绍链接
  • 云监控(Cloud Monitor):提供全方位的云资源监控和告警服务,可监控云服务器的性能指标、日志等。产品介绍链接
  • 云日志服务(CLS):提供日志采集、存储、检索和分析的一站式日志服务,可用于记录和分析Paramiko的标准输出、标准错误和标准输入等日志。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell标准输入标准输出标准错误的重定向总结

shell脚本只使用标准输入标准输出标准错误 Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。...标准输入是命令的输入,默认指向键盘; 标准输出是命令的输出,默认指向屏幕; 标准错误是命令错误信息的输出,默认指向屏幕。...2>> filename 把标准输出重定向filename文件中(追加) command > filename 2>&1 把标准输出标准错误一起重定向filename文件中(覆盖) command...>> filename 2>&1 把标准输出标准错误一起重定向filename文件中(追加) command filename2 把标准输入重定向filename文件中,...: 1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。

2.8K20

Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法

1.标准输入input()、raw_input()Python 3.x 中 input() 函数可以实现提示输入,python 2.x 中要使用 raw_input(),例如:foo = input("...input: [%s]" % (foo))# 测试执行Enter: abc deYou input: [abc de] # 读取一行(不含换行符)sys.stdin使用 sys.stdin 可以获取标准输入的文件句柄对象...linelast line] <======== 最后一行也有换行符2.标准输出printprint 可以自动换行,例如:print("%s is %0.2f...123 is a integerPI is 3.14, 123 is a integerPI is 3.14, 123 is a integersys.stdout使用 sys.stdout 可以获取标准输出的文件句柄对象...(注:write()不会自动换行,这里加了换行符)3.标准错误sys.stdout使用 sys.stderr 可以获取标准错误的文件句柄对象,示例略(将 sys.stdout 中示例中的 stdout

27610

将make的输出标准输出标准错误输出)重定向文件 _

方式 描述符 含义 stdin 0 标准输入 stdout 1 标准输出 stderr 2 标准错误输出 1.想要把make输出的全部信息,输出到某个文件中 最常见的办法就是:make xxx > build_output.txt...此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。...2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用: make xxx 2> build_output.txt 相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息...相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。...,正常信息和错误信息,都输出到对应文件中了。

4.5K20

python标准输出 标准错误 重定向

1、sys.stdin  为文件对象, 当对文件对象做循环的时候,返回的为行数 2、ls > log 2>&1  标准输出标准错误输出到log,&> log也可以,但是会有版本限制 3、print...print 是调用一个对象的write方法,通常是stdout print会先进行格式转换 print 123456   == sys.stdout.write(str(123456)+'\n') 4、标准输出不可以为...int类型, sys.stdout.write(1)  不可以 5、shell中& 单独为后台执行, >& 为管道,重定向管道 >log 1>&2  把标准输出输出标准错误   一同显示出来,而log...中没有内容 >log  2>&1 把标准错误输出标准输出, 则不会打印输出,而log中会有内容 python 中为: print >> sys.stderr,"%s is not exists" %...f sys.stdout.write("I am standard output\n") 5、python -u buffer.py | cat -   (-的意思为从标准输入读数据,不加也可以) (-

2.7K20

Python重定向标准输入标准输出和标

UNIX用户已经对标准输入标准输出标准错误的概念熟悉了。这一节是为其它不熟悉的人准备的。...标准输出标准错误(通常缩写为 stdout 和 stderr)是建立在每个UNIX系统内的管道(pipe)。...将所有后续的输出重定向到我们刚打开的新文件上。 这样只会将输出结果“打印”日志文件中;在IDE窗口中或在屏幕上不会看到输出结果。 在我们将 stdout 搞乱之前,让我们把它设回原来的方式。...将我们新打开的日志文件的文件对象赋给 stderr 重定向标准错误。 引发一个异常。从屏幕输出上我们可以注意这样没有在屏幕上打印出任何东西。所以正常跟踪信息已经写进 error.log。...我们要做的只是能够从标准输入中接收语法文件,并且我们可以将所有其它的逻辑分散另一个程序中。 那么当语法文件是“-”时我们的脚本是如何中从标准输入读入的呢?没什么神秘的,就是编码。

3.9K10

1.0 Python 标准输入输出

这些流可以是屏幕输入输出,也可以是文件、管道等。 标准输入:通常是用户控制台上的输入流,用于读取用户输入的数据。...在python中,可以使用 input() 函数来接收标准输入,默认情况下它接收一个字符串并返回该字符串。 标准输出:通常是用户控制台上的输出流,用于向控制台打印数据。...1.1 标准输入功能 任何一门编程语言都具备标准输入输出功能,输入输出是任何一门编程语言的最终目的,在python中,输入数据可以使用内置的input()函数来实现,该函数可传入一个字符串并在输入前打印至屏幕中...1.2 标准输出功能 有标准输入函数则必然有标准输出,在输出时读者可使用print()函数实现,该函数只需要传入一个输入字符串则可以实现输出,此外在某些时候如果我们不希望让该函数完成换行,则读者可在输入时增加...end=""的参数传递实现,同时标准输入函数同样支持对字符串的动态替换功能。

22940

1.0 Python 标准输入输出

这些流可以是屏幕输入输出,也可以是文件、管道等。标准输入:通常是用户控制台上的输入流,用于读取用户输入的数据。...在python中,可以使用 input() 函数来接收标准输入,默认情况下它接收一个字符串并返回该字符串。标准输出:通常是用户控制台上的输出流,用于向控制台打印数据。...1.1 标准输入功能任何一门编程语言都具备标准输入输出功能,输入输出是任何一门编程语言的最终目的,在python中,输入数据可以使用内置的input()函数来实现,该函数可传入一个字符串并在输入前打印至屏幕中...1.2 标准输出功能有标准输入函数则必然有标准输出,在输出时读者可使用print()函数实现,该函数只需要传入一个输入字符串则可以实现输出,此外在某些时候如果我们不希望让该函数完成换行,则读者可在输入时增加...end=""的参数传递实现,同时标准输入函数同样支持对字符串的动态替换功能。

19720

Linux如何在Bash中将标准错误stderr重定向stdout标准输出

将命令的输出重定向文件或将其通过管道传递另一个命令时,你可能会注意错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。...每个流由一个数字文件描述符表示: 0-stdin,标准输入流。 1 -stdout,标准输出流。 2 -stderr,标准错误流。 文件描述符只是代表打开文件的数字。...输入流通常通过在键盘上输入来向程序提供信息。 程序输出进入标准输出流,错误消息进入标准错误流。默认情况下,输入流和错误流都打印在屏幕上。...重定向标准输出流 重定向是一种从程序捕获输出并将其作为输入发送到另一个程序或文件的方法。 流可以使用n>运算符重定向,其中n是文件描述符。 省略n时,默认为标准输出流1。...要将stderr重定向stdout并将错误消息发送到与标准输出相同的文件,请使用以下命令: command > file 2>&1 > file将stdout重定向file,2>&1将stderr重定向

3.3K20

Linux学习 - 管道、标准输入输出

Linux下的标准输入输出、重定向、管道 在Linux系统中,有4个特殊的符号,’, ‘|’, ‘-‘,在我们处理输入输出时存在重要但具有迷惑性的作用。...默认Linux的命令的结果都是输出标准输出错误信息 (比如命令未找到或文件格式识别错误等) 输出标准错误,而标准输出标准错误默认都会显示屏幕上。...>表示重定向标准输出,> filename就是把标准输出存储文件filename里面。标准错误还是会显示在屏幕上。 2 >&1 表示把标准错误重定向标准输出。...Linux终端用2表示标准错误,1表示标准输出。 - (短横线):表示标准输入,一般用于1个程序需要多个输入的时候。 <标准输入,后面可以跟可以产生输出的命令,一般用于1个程序需要多个输入的时候。...unexisted_command 运行这个脚本 # 标准输出标准错误默认都会显示屏幕上 ct@ehbio:~$ bash stdout_error.sh I am std output stdout_error.sh

4.1K60

Linux下 标准错误输出重定向

command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 & 0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1 2:表示错误输出...(stderr) 1)command : 表示shell命令或者为一个可执行程序 2)> : 表示重定向到哪里 3)/dev/null : 表示linux的空设备文件 4)2 : 表示标准错误输出...5)&1 : &表示等同于的意思,2>&1,表示2的输出重定向等于于1 6)& : 表示后台执行,即这条指令执行在后台运行 1>/dev/null 表示标准输出重定向空设备文件,也就是不输出任何信息终端...2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向空设备文件。...这条命令的意思就是在后台执行这个程序,并将错误输出2重定向标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.

3K100

09_Linux基础-SHELL-标准输入标准输出-重定向-管道

------------------------输入输出及重定向每个进程基本都会打开三个文件描述符0: 标准输入(从键盘)1: 标准输出输出到屏幕)2: 标准错误输出输出到屏幕)类型设备文件文件描述符...utm_source=blogxgwz9每个进程基本都会打开三个文件描述符0:标准输入(从键盘、语音、人脸识别……)1:标准输出输出到屏幕)2:标准错误输入输出到屏幕)---------------...-----------------------------类型操作符重定向标准错误 2>2>>重定向标准输出标准错误同一个文件2>&1 或者>&或者 &>重定向标准输出标准错误不同文件> 文件1...(注:与>效果相反)正确输出显示在屏幕上,标准错误输出重定向文件只输出错误的root@sanchuang-linux redirect# sh test.sh 2> test_result.txt2020...t: 未找到命令(注:标准错误输出重定向文件)---知识点3.5.2 # sh test.sh &> test_result.txt# sh test.sh &> test_result.txt把正确的错误的都重定向

2K10
领券