我有一个文件(具有不同的扩展名),每10分钟在Windows共享(A)上添加,并希望将它们复制到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")
但是每次调用它都会复制所有文件......
答案 0 :(得分:1)
这就是我最后在最后10分钟内修改文件,然后将它们从Windows共享文件夹复制到linux文件夹中所做的事情:
require 'fileutils'
require 'time'
class Copier
def initialize(from,to)
puts "copying files... puts #{Time.now} \n"
my_files = Dir["#{from}/*.*"].select { |fname| File.mtime(fname) > (Time.now - (60*10)) })
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")