如何从电脑复制文件到其他多台(20 台电脑左右)并执行文件。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
sznewbee096
V2EX    Python

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

  •  
  •   sznewbee096 2019-12-01 22:57:02 +08:00 6404 次点击
    这是一个创建于 2146 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言    2019-12-02 14:51:05 +08:00
    根据各位 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
    redial39
        1
    redial39  
       2019-12-01 23:08:14 +08:00
    用 git 啊...推命令就完了
    kdsland
        2
    kdsland  
       2019-12-01 23:14:34 +08:00   1
    ansible
    lc7029
        3
    lc7029  
       2019-12-01 23:21:45 +08:00
    灰鸽子。。。
    ClericPy
        4
    ClericPy  
       2019-12-01 23:25:01 +08:00
    ansible, fabric, saltstack ....
    flynaj
        5
    flynaj  
       2019-12-01 23:50:26 +08:00
    文件多的话可以用 syncthing 做同步,写个脚本来等同步好运行。
    dr1q65MfKFKHnJr6
        6
    dr1q65MfKFKHnJr6  
       2019-12-01 23:59:40 +08:00
    git 吧, 数量不多, 老早之前做自动升级用过,定时任务或者整个 rest 接口触发去服务器拉取指定标签的提交记录, 和当前标签 diff 一下,拉更新文件。
    大概就是这么个思路。临时用可以,主要是方便控制。电脑数量级别要是上升 就要上产品级别的东西了。
    datocp
        7
    datocp  
       2019-12-02 06:44:16 +08:00 via Android
    以前都用 psexec+autoit 实现鼠标自动点击下一步。
    Tink
        8
    Tink  
    PRO
       2019-12-02 08:17:42 +08:00 via iPhone
    这肯定是 ansible 啊,专门干这个的
    CallMeReznov
        9
    CallMeReznov  
       2019-12-02 09:08:23 +08:00 via Android
    salt
    结束
    Hopetree
        10
    Hopetree  
       2019-12-02 09:18:03 +08:00
    ansible 申请出战:教练,我想吃烤山药
    GBdG6clg2Jy17ua5
        11
    GBdG6clg2Jy17ua5  
       2019-12-02 09:21:14 +08:00
    二十台而已,一台台拷贝啊,多大的事。
    tankren
        12
    tankren  
       2019-12-02 09:26:17 +08:00
    没有加域?
    sznewbee096
        13
    sznewbee096  
    OP
       2019-12-02 09:54:30 +08:00
    @angryfish 重复性的工作本来想交给程序的。况且更新还不止一次!!
    realpg
        14
    realpg  
    PRO
       2019-12-02 10:02:53 +08:00
    梦回 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 管道不能关闭
    sznewbee096
        15
    sznewbee096  
    OP
       2019-12-02 10:11:36 +08:00
    @redial39 git 怎么用,git 主要不是连接 github 或者项目库文件管理?
    sznewbee096
        16
    sznewbee096  
    OP
       2019-12-02 10:13:28 +08:00
    @lc7029 感谢,灰鸽子不是容易被杀毒软件和防火墙隔离。属于运维中的服务器有点难。
    sznewbee096
        17
    sznewbee096  
    OP
       2019-12-02 10:18:32 +08:00
    @kdsland @Hopetree @Tink 感谢 V 友,ansible 模块主要是在 windows 向 linux 使用比较方便,Paramiko 第三方模块也具有同样的功能,windows 系统之间没有相应的模块调用可以做到复制粘贴远程运行文件。
    sznewbee096
        18
    sznewbee096  
    OP
       2019-12-02 10:23:09 +08:00
    @realpg 感谢!这个属于 VB 的 bat 脚本,这个也是一个解决 windows 之间复制执行文件的方案,如果没有找到合适的,将采用这种方法。
    lc7029
        19
    lc7029  
       2019-12-02 10:30:55 +08:00
    @sznewbee096 白名单或不装杀毒就好了
    qistchan
        20
    qistchan  
       2019-12-02 10:32:38 +08:00
    国庆节部署一个软件客户端,2000 多台机器 就用的 psexec 远程执行一个 bat
    chinazz
        21
    chinazz  
       2019-12-02 10:42:42 +08:00
    ansible
    realpg
        22
    realpg  
    PRO
       2019-12-02 11:28:22 +08:00 via Android
    @sznewbee096 ipc 后面有个美元符号漏了
    wiewiewie
        23
    wiewiewie  
       2019-12-02 11:55:04 +08:00
    windows 和 linux 都存在, 20 多台 ,SVN 触发钩子, 同步与执行。唯一就是 第 1 次安装累点。
    annielong
        24
    annielong  
       2019-12-02 12:55:27 +08:00
    从主端到多端,有些麻烦,但是从多端到主端就比较简单,随便代码就能实现,就是每个端都要运行比较麻烦,不过也可以做计划来启动
    pi1ot
        25
    pi1ot  
       2019-12-02 12:57:49 +08:00
    我以前的土办法是每台 client 定时到 master 用 rsync 拉脚本,执行完后删除
    wangyzj
        26
    wangyzj  
       2019-12-02 13:41:09 +08:00
    ansible or git
    luozic
        27
    luozic  
       2019-12-02 13:48:44 +08:00
    ansible ; 有加入域也可以使用域来给客户机推文件。
    sznewbee096
        28
    sznewbee096  
    OP
       2019-12-02 14:11:22 +08:00
    @wiewiewie 通过 SVN 钩子能实现,但是服务器非本公司所有,所以这种方案还是不采用了。 谢谢。
    harrison0124
        29
    harrison0124  
       2019-12-02 14:26:16 +08:00
    就 20 几台,U 盘啊,这么方便
    sznewbee096
        30
    sznewbee096  
    OP
       2019-12-02 14:37:01 +08:00
    @harrison0124 远程管理,不能进机房,且以后在不断拓展。
    sparkssssssss
        31
    sparkssssssss  
       2019-12-02 16:04:42 +08:00
    开个简易 http 服务器,就不用专门装 git svn 之类
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1639 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 91ms UTC 16:17 PVG 00:17 LAX 09:17 JFK 12:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86