【发布时间】:2015-01-12 19:57:31
【问题描述】:
我在 Windows 共享 (A) 上每 10 分钟添加一次文件(具有不同的扩展名),我想将它们复制到 linux 服务器 (B) 并使用脚本对它们进行一些操作。
使用 ruby 和 FilesUtils 我如何创建一个脚本来只复制最后添加的文件(或者有一个观察者将文件复制到文件夹 B 每当它们被添加到我的文件夹 A)
更新这是我目前所拥有的
require 'fileutils'
require 'time'
class Copier
def initialize(from,to)
puts "copying files... puts #{Time.now} \n"
my_files = Dir["#{from}/*.*"].sort_by { |a| File.stat(a).mtime }
my_files.each do |filename|
name = File.basename(filename)
orig = "#{filename}"
dest = "#{to}/#{name}"
FileUtils.cp(orig, dest)
puts "cp file : from #{orig} => to #{dest}"
end
end
end
Copier.new("/mnt/windows_share", "linux_folder")
但是每次调用它都会复制所有的文件...
【问题讨论】:
-
您的问题太宽泛了,因为有多种方法可以做到这一点。相反,您为什么不向我们展示您的尝试,我们将帮助您解决可能遇到的问题。我建议通读Find 的示例,因为这是一个很好的起点。可以使用 Linux 上的
inotify机制来创建观察者。