【问题标题】:Automatically copying files from a Linux machine to a Windows machine自动将文件从 Linux 机器复制到 Windows 机器
【发布时间】:2010-09-22 07:56:24
【问题描述】:

我需要每天自动将文件从 linux 机器复制到 windows 一个。

我正在寻找简单而安全的东西,例如 scp、rsync、sftp。不幸的是,我不知道如何在 Windows 机器上进行设置。

有人知道怎么做吗?

【问题讨论】:

    标签: windows linux file cross-platform copy


    【解决方案1】:

    我已经好几年没用过了,但你可以试试 http://www.cis.upenn.edu/~bcpierce/unison/ 的 Unison

    可以使用“smbclient”来完成,它的作用很像 Windows 共享的 FTP 客户端。查看手册页:man smbclient 并寻找使用-c 选项编写脚本的方法,或使用man expect 来驱动它。

    不过,我可能会这样做:

    1. 选择您要成为的用户 当您同步文件时。登录为 这个用户并输入“id”,然后获取 数字标识。您将在 第四步
    2. 成为“根”
    3. mkdir /mnt/sharename
    4. 编辑您的 /etc/fstab 文件并添加一个类似这样的条目。将用户 ID 500 替换为您的用户 ID。将 sharename 替换为您的 Windows 共享名称。将 WINDOWSHOSTNAME 替换为您的主机名或 IP 地址。如果您不知道这些共享,请运行smbclient -L WINDOWSHOSTNAME

      //WINDOWSHOSTNAME/sharename /mnt/sharename cifs credentials=/root/smblogin,uid=500,noauto,user 0 0

    5. 编辑 /root/smblogin 并将以下两行放入其中

      username=YOUR_WINDOWS_USERNAME
      password=YOUR_WINDOWS_PASSWOD

    6. 从步骤 1 开始以用户身份登录。

    7. 尝试安装共享:mount /mnt/sharename
    8. 如果成功,则编写一个脚本自动执行此操作。我们称它为“backup.sh”:

      #!/bin/sh
      df | grep -q /mnt/sharename
      if test $? -ne 0 ; then
      mount /mnt/sharename
      fi
      cp -r /path/to/dir /mnt/sharename/destination/

    9. 使用 cron 运行脚本。

      1. 输入crontab -e
      2. 将以下内容放入文件中:

      PATH=/bin:/usr/bin
      # Backup at 2:15 A.M. every day. Run 'man 5 crontab' for help on the time format
      15 2 * * * /path/to/backup.sh

    【讨论】:

      【解决方案2】:

      “我不知道如何在 Windows 机器上进行设置。” Windows是客户端还是服务器?不知所措意味着什么,具体是什么?你不能做什么?

      “linux机器到windows”可以通过两种方式完成。

      1. Linux 是客户端。 Windows 运行 FTP 或 SCP 或 SSH 服务器。 Linux 有一个客户端并将文件推送到 Windows。查看FileZilla 获取免费的Windows FTP 服务器。此外,Windows 的 FTP 服务通常已关闭。打开它。

      2. Windows 是客户端。 Windows 会定期从 linux 服务器中提取文件。这更容易,因为 Linux 已经拥有所有必要的可用服务器。但是,您确实需要在 Linux 上启动它们。

      有许多用于 Windows 的 sftp、scp 客户端。 Windows 带有一个 ftp 客户端。谷歌 sftp 客户端。您将找到WinSCPPuttyfilezilla,并列出free country sftp 客户端列表。

      【讨论】:

        【解决方案3】:

        你可以在 cygwin 中找到 rsync for windows,这样你就可以在 windows 机器上设置一个 rsync 服务器,并在你的 linux 机器上运行一个 cron 作业,将所有文件同步到 windows 机器。我们曾经这样做过,而且效果很好。

        【讨论】:

          【解决方案4】:

          您可以尝试WinSCP 及其scripting support。而且 Windows 在其管理内容中支持某种类似 cron 的操作,不是吗?

          【讨论】:

          • cron = Windows 中的“计划任务”
          【解决方案5】:

          您可以尝试使用 smbfs 将 Windows 驱动器挂载为 Linux 机器上的挂载点;然后,您就可以使用普通的 Linux 脚本和复制工具(例如 cron 和 scp/rsync)进行复制。

          【讨论】:

            猜你喜欢
            • 2011-10-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多