我又来求助了,想定时把 windows 指定目录下面的文件拷贝到 Linux 上面怎么实现呢? - 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
fengxueshangu
V2EX    Python

我又来求助了,想定时把 windows 指定目录下面的文件拷贝到 Linux 上面怎么实现呢?

  •  
  •   fengxueshangu 2018-01-17 17:21:10 +08:00 6086 次点击
    这是一个创建于 2848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    渣渣测试一枚,现在想写一个 python 小脚本,就是定时把一个 win7 上面一个固定目录下的文件拷贝到 linux 上,脚本运行在这个 linux 上面,想了几个库,貌似都不好实现阿,主要是 win7 上面没开启什么服务,有没有简便一点的方法,多谢各位大神指点了。

    第 1 条附言    2018-01-19 08:46:36 +08:00
    一天没有来看,这么多的留言,非常感谢大家,提出了这么多的建议。
    昨天我试了好几种方法,都失败了,原因是公司的安保政策,导致 windows 上面不能安装很多可以开启 ssh 的软件,而且共享文件夹都被安保软件禁止了。至于为什么一定要运行在 linux 上面,而不是 windows 主动上传,是因为这个脚本是作为我们一个运行在 linux 上面的小系统的一部分,所以首先要看看能不能从 linux 上主动去取这个文件,而不是 windows 主动去上传。
    再次感谢大家的回复,我在想一想其他的办法。
    31 条回复    2018-01-18 13:01:16 +08:00
    yangzhezjgs
        1
    yangzhezjgs  
       2018-01-17 17:37:30 +08:00
    虚拟机?
    WO31400
        2
    WO31400  
       2018-01-17 17:38:45 +08:00
    生成 exe,运行
    anjingme
        3
    anjingme  
       2018-01-17 17:40:13 +08:00
    linux 搞个 samba、nfs 服务,共享给 win7 挂载上,然后定时任务( seccopy 这类软件)把 win7 上文件拷贝到这个挂载目录上
    annielong
        4
    annielong  
       2018-01-17 17:41:23 +08:00
    先 smb 共享?
    geelaw
        5
    geelaw  
       2018-01-17 17:42:37 +08:00
    Windows 上用 Task Scheduler 就可以把文件复制出去啦
    FreeEx
        6
    FreeEx  
       2018-01-17 17:47:47 +08:00
    只需要程序跑在 win7 上就好了,ftp 往 linux 上传。
    h4lbhg1G
        7
    h4lbhg1G  
       2018-01-17 17:53:10 +08:00
    好吧,我再来推广我的 CommandTrayHost

    CommandTrayHost 有一个 crontab 功能,可以精确到秒。然后如果装一个 cygwin,那么你可以用 scp 来传文件。

    写一个 bat 防如下内容

    @ echo off
    C:\cygwin64\bin\bash --login -c "cd ~/work; ./upload.sh"

    然后写一个 update.sh 内容如下

    #!/bin/bash

    rsync -rltcv --no-perms --progress --compress -e ssh nginx/nginx.conf nginx/sites-available nginx/snippets [email protected]:/etc/nginx/
    h4lbhg1G
        8
    h4lbhg1G  
       2018-01-17 17:55:53 +08:00
    然后加一个 CommandTrayHost 的配置如下

    {
    "name": "自动上传",
    "path": "C:\\Windows\\System32",
    "cmd": "cmd.exe upload.bat",
    "working_directory": "D:\\bat_script",
    "addition_env_path": "",
    "use_builtin_console": false,
    "is_gui": false,
    "enabled": false,
    // 可选
    "start_show": false,
    "crontab_config": { // crontab 配置
    "crontab": "5 */6 * * * *", // 每 6 分钟上传一次
    "method": "restart", // 支持的有 start restart stop
    "count": 0, // 0 表示不只限制,大于 0 的整数,表示运行多少次就不运行了
    },
    },
    vibbow
        9
    vibbow  
       2018-01-17 17:56:40 +08:00
    非轮子的话,就直接用 goodsync
    imn1
        10
    imn1  
       2018-01-17 17:57:57 +08:00
    同步省事多了
    vibbow
        11
    vibbow  
       2018-01-17 17:58:09 +08:00
    或者用 rclond + 计划任务
    imcnan
        12
    imcnan  
       2018-01-17 17:58:15 +08:00
    你如果用的是 vm 虚拟机,可以直接使用目录映射,在 Linux 里直接访问 windows 的对应目录。
    h4lbhg1G
        13
    h4lbhg1G  
       2018-01-17 17:58:18 +08:00
    嗯 上面的有个问题 enabled 要改成 true 才能一打开就自动运行。我发现我好像歪题了,赶紧逃<_
    vibbow
        14
    vibbow  
       2018-01-17 17:58:21 +08:00
    @vibbow #11 更正:rclone
    tushankaka
        15
    tushankaka  
       2018-01-17 17:58:42 +08:00 via Android
    定时 scp 不行么。(我也不知道对不对。。)
    imcnan
        16
    imcnan  
       2018-01-17 17:59:05 +08:00
    如果是两个隔离的机器,你就直接在 win7 上启动一个简单的 httpfileserver 吧,用 python 起一个就行了,或者用别的。
    kemad
        17
    kemad  
       2018-01-17 18:03:19 +08:00
    可以不同步,有条件的话,Windows 开共享,Linux 上 smbmount,搞定。
    Beebird
        18
    Beebird  
       2018-01-17 18:05:04 +08:00
    假定 Windows 和 Linux 在同一子网,我用过两种方法:
    1. Windows 装 sshd 服务(记不清是否依赖 cygwin 了),Linux 定时用 scp 或 rsync
    2. Windows 目录设置共享,Linux 上将该目录用 cifs 挂载到本地。

    根据经验,第二种更可靠,不依赖额外的服务。
    songz
        19
    songz  
       2018-01-17 18:06:54 +08:00 via Android
    两边安个 resilio 搞定
    clino
        20
    clino  
       2018-01-17 18:10:26 +08:00
    syncthing
    dl2k
        21
    dl2k  
       2018-01-17 18:19:03 +08:00
    在 win 的机器上跑个定时任务做 PSCP 就好了
    likuku
        22
    likuku  
       2018-01-17 18:26:16 +08:00
    windows 计划任务 定时跑 rsync 把指定目录 推到 linux 服务器。

    不同子网 /公网? openvpn 把 win 和 linux 连起来。

    十几年前就是这么玩的,简单可靠。
    likuku
        23
    likuku  
       2018-01-17 18:29:56 +08:00
    cwRsync - Rsync for Windows | itefix.net : https://www.itefix.net/cwrsync
    20has
        24
    20has  
       2018-01-17 18:51:42 +08:00 via Android
    rsync+cwrsync 还是增量备份 哈哈哈哈 楼上的和我说的一样
    catror
        25
    catror  
       2018-01-17 19:12:47 +08:00 via Android
    单向同步,跑个定时任务就行了
    N0stalgia
        26
    N0stalgia  
       2018-01-17 19:15:14 +08:00
    samba 或者 U 盘,lol
    mkeith
        27
    mkeith  
       2018-01-17 21:14:08 +08:00
    winscp
    killeder
        28
    killeder  
       2018-01-17 21:19:32 +08:00 via Android
    git?
    skyrem
        29
    skyrem  
       2018-01-17 22:34:46 +08:00
    @Beebird #18 恰好知道一个不依赖 cygwin 的 sshd
    http://www.powershellserver.com/
    suspended
        30
    suspended  
       2018-01-18 12:12:09 +08:00
    为什么不从 Win7 上定时运行个 scp 命令,非要从 Linux 上反过来做?
    wizardoz
        31
    wizardoz  
       2018-01-18 13:01:16 +08:00
    计划任务
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5738 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 03:17 PVG 11:17 LAX 19:17 JFK 22: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