首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Coding
V2EX  ›  Python

如何从电脑复制文件到其他多台(20 台电脑左右)并执行文件。

  •  
  •   sznewbee096 · 11 天前 · 2462 次点击

    现场运维过程中,需要批量复制替换文件并升级,windows 和 linux 都存在,在研究用 python 实现,不过 Paramiko 对应 linux 容易,而 pywinrm 对应的 windows 没有远程复制文件相关函数。求助广大 V 友。

    第 1 条附言  ·  11 天前
    根据各位 V 友的回复,我简单的进行了一下查询和整理,但是实际方案为验证是否可行,基本如下:
    方案一:python 调用 ansible 模块;很好的支持 linux 集群管理且支持 windows 集群管理;但是 ansible 必须是 V1.7 版本以上支持 windows 管理,不过是需要被管理 windows 集群支持 power shell 和 Management Framework 及 3.0 以上版本(换句话就是 windows server2012 和 windows 10 以上),并存在较多限制,参考 https://blog.csdn.net/wangtaoking1/article/details/78313892。

    方案二:使用 @realpg 的方法:
    net use \\192.168.1.12\ipc$ "password" /user:Administrator
    copy c:\target.exe \\192.168.1.12\c$\Users\Administrator\Desktop\clickme.exe
    psexec \\192.168.1.12 -u Administrator -p password -d -i 0 "c$\Users\Administrator\Desktop\clickme.exe"
    限制条件 pstools 需要安装且目标及 ipc 管道和 admin 管道不能关闭

    方案三: 运用 git 和 SVN 推送和自动更新的功能(我的理解),这些就需要预装 git 和 SVN 客户端和服务端,我只负责协助运维,实际服务器禁止安装 git 和 SVN 等第三方工具。方案适用于具有所有权和完全使用权的服务器管理。

    方案四:运用灰鸽子软件,由于防火墙和杀毒软件不能控制,所以不能使用

    方案五:通过构建域的方式推送,不太懂这种方式,暂时不解释。

    对于第三方模块 fabric, saltstack 还在研究啃文档。再此感谢 V 友建议,后续具体验证后会持续更新。
    31 回复  |  直到 2019-12-02 16:04:42 +08:00
        1
    redial39   11 天前
    用 git 啊...推命令就完了
        2
    kdsland   11 天前   ♥ 1
    ansible
        3
    lc7029   11 天前
    灰鸽子。。。
        4
    ClericPy   11 天前
    ansible, fabric, saltstack ....
        5
    flynaj   11 天前
    文件多的话可以用 syncthing 做同步,写个脚本来等同步好运行。
        6
    cedoo22   11 天前
    git 吧, 数量不多, 老早之前做自动升级用过,定时任务或者整个 rest 接口触发去服务器拉取指定标签的提交记录, 和当前标签 diff 一下,拉更新文件。
    大概就是这么个思路。临时用可以,主要是方便控制。电脑数量级别要是上升 就要上产品级别的东西了。
        7
    datocp   11 天前 via Android
    以前都用 psexec+autoit 实现鼠标自动点击下一步。
        8
    Tink   11 天前 via iPhone
    这肯定是 ansible 啊,专门干这个的
        9
    CallMeReznov   11 天前 via Android
    salt
    结束
        10
    Hopetree   11 天前
    ansible 申请出战:教练,我想吃烤山药
        11
    angryfish   11 天前
    二十台而已,一台台拷贝啊,多大的事。
        12
    tankren   11 天前
    没有加域?
        13
    sznewbee096   11 天前
    @angryfish 重复性的工作本来想交给程序的。况且更新还不止一次!!
        14
    realpg   11 天前
    梦回 2002 年

    net use \\192.168.1.12\ipc "password" /user:Administrator
    copy c:\target.exe \\192.168.1.12\c$\Users\Administrator\Desktop\clickme.exe
    psexec \\192.168.1.12 -u Administrator -p password -d -i 0 "c$\Users\Administrator\Desktop\clickme.exe"

    pstools 需要安装
    目标及 ipc 管道和 admin 管道不能关闭
        15
    sznewbee096   11 天前
    @redial39 git 怎么用,git 主要不是连接 github 或者项目库文件管理?
        16
    sznewbee096   11 天前
    @lc7029 感谢,灰鸽子不是容易被杀毒软件和防火墙隔离。属于运维中的服务器有点难。
        17
    sznewbee096   11 天前
    @kdsland @Hopetree @Tink 感谢 V 友,ansible 模块主要是在 windows 向 linux 使用比较方便,Paramiko 第三方模块也具有同样的功能,windows 系统之间没有相应的模块调用可以做到复制粘贴远程运行文件。
        18
    sznewbee096   11 天前
    @realpg 感谢!这个属于 VB 的 bat 脚本,这个也是一个解决 windows 之间复制执行文件的方案,如果没有找到合适的,将采用这种方法。
        19
    lc7029   11 天前
    @sznewbee096 白名单或不装杀毒就好了
        20
    qistchan   11 天前
    国庆节部署一个软件客户端,2000 多台机器 就用的 psexec 远程执行一个 bat
        21
    chinazz   11 天前
    ansible
        22
    realpg   11 天前 via Android
    @sznewbee096 ipc 后面有个美元符号漏了
        23
    wiewiewie   11 天前
    windows 和 linux 都存在, 20 多台 ,SVN 触发钩子, 同步与执行。唯一就是 第 1 次安装累点。
        24
    annielong   11 天前
    从主端到多端,有些麻烦,但是从多端到主端就比较简单,随便代码就能实现,就是每个端都要运行比较麻烦,不过也可以做计划来启动
        25
    pi1ot   11 天前
    我以前的土办法是每台 client 定时到 master 用 rsync 拉脚本,执行完后删除
        26
    wangyzj   11 天前
    ansible or git
        27
    luozic   11 天前
    ansible ; 有加入域也可以使用域来给客户机推文件。
        28
    sznewbee096   11 天前
    @wiewiewie 通过 SVN 钩子能实现,但是服务器非本公司所有,所以这种方案还是不采用了。 谢谢。
        29
    harrison0124   11 天前
    就 20 几台,U 盘啊,这么方便
        30
    sznewbee096   11 天前
    @harrison0124 远程管理,不能进机房,且以后在不断拓展。
        31
    coolloves   11 天前
    开个简易 http 服务器,就不用专门装 git svn 之类
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3163 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    ♥ Do have faith in what you're doing.