我需要每天自动将文件从 linux 机器复制到 windows 一个。
我正在寻找简单而安全的东西,例如 scp、rsync、sftp。不幸的是,我不知道如何在 Windows 机器上进行设置。
有谁知道如何做到这一点?
我需要每天自动将文件从 linux 机器复制到 windows 一个。
我正在寻找简单而安全的东西,例如 scp、rsync、sftp。不幸的是,我不知道如何在 Windows 机器上进行设置。
有谁知道如何做到这一点?
您可以尝试使用 smbfs 将 Windows 驱动器挂载为 Linux 机器上的挂载点;然后,您将能够使用普通的 Linux 脚本和复制工具(例如 cron 和 scp/rsync)进行复制。
你可以在 cygwin 中找到 rsync for windows,这样你就可以在 windows 机器上设置一个 rsync 服务器,并在你的 linux 机器上运行一个 cron 作业,将所有文件同步到 windows 机器。我们曾经这样做过,而且效果很好。
我已经好几年没用过了,但你可以从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,并列出sftp 客户端的免费国家/地区列表。