【发布时间】:2010-09-22 07:56:24
【问题描述】:
我需要每天自动将文件从 linux 机器复制到 windows 一个。
我正在寻找简单而安全的东西,例如 scp、rsync、sftp。不幸的是,我不知道如何在 Windows 机器上进行设置。
有人知道怎么做吗?
【问题讨论】:
标签: windows linux file cross-platform copy
我需要每天自动将文件从 linux 机器复制到 windows 一个。
我正在寻找简单而安全的东西,例如 scp、rsync、sftp。不幸的是,我不知道如何在 Windows 机器上进行设置。
有人知道怎么做吗?
【问题讨论】:
标签: windows linux file cross-platform copy
我已经好几年没用过了,但你可以试试 http://www.cis.upenn.edu/~bcpierce/unison/ 的 Unison
可以使用“smbclient”来完成,它的作用很像 Windows 共享的 FTP 客户端。查看手册页:man smbclient 并寻找使用-c 选项编写脚本的方法,或使用man expect 来驱动它。
不过,我可能会这样做:
mkdir /mnt/sharename编辑您的 /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
编辑 /root/smblogin 并将以下两行放入其中
username=YOUR_WINDOWS_USERNAME
password=YOUR_WINDOWS_PASSWOD
从步骤 1 开始以用户身份登录。
mount /mnt/sharename 如果成功,则编写一个脚本自动执行此操作。我们称它为“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/
使用 cron 运行脚本。
crontab -e
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
【讨论】:
“我不知道如何在 Windows 机器上进行设置。” Windows是客户端还是服务器?不知所措意味着什么,具体是什么?你不能做什么?
“linux机器到windows”可以通过两种方式完成。
Linux 是客户端。 Windows 运行 FTP 或 SCP 或 SSH 服务器。 Linux 有一个客户端并将文件推送到 Windows。查看FileZilla 获取免费的Windows FTP 服务器。此外,Windows 的 FTP 服务通常已关闭。打开它。
Windows 是客户端。 Windows 会定期从 linux 服务器中提取文件。这更容易,因为 Linux 已经拥有所有必要的可用服务器。但是,您确实需要在 Linux 上启动它们。
有许多用于 Windows 的 sftp、scp 客户端。 Windows 带有一个 ftp 客户端。谷歌 sftp 客户端。您将找到WinSCP、Putty、filezilla,并列出free country sftp 客户端列表。
【讨论】:
你可以在 cygwin 中找到 rsync for windows,这样你就可以在 windows 机器上设置一个 rsync 服务器,并在你的 linux 机器上运行一个 cron 作业,将所有文件同步到 windows 机器。我们曾经这样做过,而且效果很好。
【讨论】:
您可以尝试WinSCP 及其scripting support。而且 Windows 在其管理内容中支持某种类似 cron 的操作,不是吗?
【讨论】:
您可以尝试使用 smbfs 将 Windows 驱动器挂载为 Linux 机器上的挂载点;然后,您就可以使用普通的 Linux 脚本和复制工具(例如 cron 和 scp/rsync)进行复制。
【讨论】: