gpt4 book ai didi

python - Fabric 在远程服务器上执行命令不起作用

转载 作者:行者123 更新时间:2023-12-01 05:23:29 25 4
gpt4 key购买 nike

我想在Python中使用fabric,在远程服务器上执行命令。

我写了这些:

from fabric.api import *
from fabric.tasks import execute
def do_some_thing():
run("ls -lh")
if __name__ == '__main__':
execute(do_some_thing,hosts=['root@10.18.103.102'])

但是,它不起作用并让我登录..

这是输出:

➜  ~  python test.py
[root@10.18.103.102] Executing task 'do_some_thing'
[root@10.18.103.102] run: ls -lh
[root@10.18.103.102] out: root@svn:~#
[root@10.18.103.102] out: root@svn:~#

最佳答案

利用env变量 -

from fabric.api import *
from fabric.contrib.files import *

def myserver():
env.hosts = ['10.18.103.102']
env.user = 'root'
# if you have key based authentication, uncomment and point to private key
# env.key_filename = '~/.ssh/id_rsa'
# if you have password based authentication
env.password = 'ThEpAsAwOrd'

def ls():
run('ls -al')

现在将它们保存在一个文件中,调用 fabfile.py 并执行(在同一目录上) -

$ fab myserver ls

Fabric 将依次执行这两个函数。因此,当它执行 ls() 时,它将在 env 中包含服务器详细信息。

关于python - Fabric 在远程服务器上执行命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com