6

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

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

有谁知道如何做到这一点?

4

5 回答 5

6

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

于 2008-11-14T10:53:39.833 回答
2

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

于 2008-11-14T10:58:41.397 回答
2

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

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

这就是我可能会这样做的方式:

  1. 在同步文件时选择您将成为的用户。以该用户身份登录并输入“id”,然后获取数字 ID。您将在第 4 步中使用此 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

于 2008-11-14T15:42:02.310 回答
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,并列出sftp 客户端的免费国家/地区列表。

于 2008-11-14T11:01:07.243 回答
1

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

于 2008-11-14T10:56:45.863 回答