我目前快速设置了一种将文件从 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),您可以避免重新挂载共享(并且还允许非特权用户帐户挂载它)。