每分钟从linux复制到windows

每分钟从linux复制到windows

我目前快速设置了一种将文件从 Linux 计算机复制到多人可以访问的 Windows 共享的方法,但我正在寻找更好的方法。

在 Windows 7 中,我创建了一个每个人都可以访问的文件夹。

在linux中,我创建了目录/mnt/windows_share并使用samba挂载了windows共享:

sudo mount -t cifs -o username=mouche,password=1234 //COMPUTERNAME/share_dir /mnt/windows_share

然后我在要从中复制文件的目录中使用 sudo 运行此脚本:

#!/usr/bin/perl -w
while (1)
{
    system("cp -u * /mnt/windows_share/");
    sleep 1;
}

这样做的一个问题是,即使我向 cp 添加了 -u 选项,它也会在每次更新时更新 Windows“修改日期”属性。另外,如果机器重新启动,则必须再次运行 mount 命令和脚本(使用 sudo,因此您需要知道密码)。

关于如何改进这个过程有什么建议吗?

答案1

您应该尝试 rsync 而不是 cp:rsync -avz linux_path /mnt/windows_share/和 crontab 而不是 perl loop:crontab -e并将以下行添加到其中:

* * * * * rsync -avz linux_path /mnt/windows_share/

它将每分钟执行一次,如果您可以选择这样做,那么它比 while 循环更强大。

答案2

通过将共享添加到 fstab (/etc/fstab),您可以避免重新挂载共享(并且还允许非特权用户帐户挂载它)。

相关内容