python - 如何使用 python 结构对远程服务器上存在的文件进行更改/编辑?

标签 python automated-tests fabric

我在远程服务器上有一个 .yml 文件,我想使用 python Fabric 对其进行更改。如果可以用其他 python 库来完成,请随意分享。 谢谢

最佳答案

您正在尝试编辑文件中间的一行,但在我看来这是不可能的。 您可以做的是在本地计算机上制作远程文件的副本,其中包含您想要更改的所需值,然后将其发送回远程服务器。

from fabric import Connection as connection, task

@task
def executeTask(ctx):
    with connection(host=dev_server, user=myuser) as c:
         c.put('PATH_TO_YOUR_YML_FILE_LOCALLY', 'PATH_TO_YOUR_REMOTE_YML_FILE')

不要忘记:

  1. dev_servermyuser 替换为远程服务器 IP 和用户名
  2. 将上面的代码放入名为 fabfile.py 的文件中,然后从命令行运行 fabexecuteTask

上面的代码与fabric 2.4兼容

编辑: 由于权限问题,您可以执行以下操作:

@task
def executeTask(ctx):
    with connection(host=dev_server, user=myuser) as c:
         c.put("PATH_TO_YOUR_YML_FILE_LOCALLY") # implicit to remote $HOME
         c.sudo("mv YOUR_FILE_NAME YOUR_DESIRED_LOCATION") # again implicitly with a CWD of $HOME 
         c.sudo("chown root:root YOUR_REMOTE_FILE") 

引用: https://github.com/fabric/fabric/issues/1750#issuecomment-406043571

关于python - 如何使用 python 结构对远程服务器上存在的文件进行更改/编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55044243/

相关文章:

javascript - TestCafe,带有 Electron 抛出的 “Uncaught TypeError: Cannot read property '源未定义”

python - fabric 不适用于我的 python/django 代码

python - 创建一个 'frame' 隐藏除了它在 pygame 中包含的所有内容

python - 学习根据历史预测 future 客户的行为

Python - 是否有更有效的方法来查找这些参数值?

python - 导入错误:没有名为 'fabric.contrib' 的模块

python - 导入错误 : No module named pexpect

python - 如何查明日期是否晚于期间结束

android - Gradle:上传 app-local-debug.apk 时出错:未知故障 ([CDS]close[0])

unit-testing - 使用 Fitness 与自动化集成测试相比有什么优势?