ruby 根据修改日期复制文件
ruby Copy files based on date modified
我在 windows 共享 (A) 上每 10 分钟添加一次文件(具有不同的扩展名),我想将它们复制到 linux 服务器 (B) 并在他们用脚本。
使用 ruby 和 FilesUtils 如何创建一个脚本 仅复制最后添加的文件(或者有一个观察者将文件添加到我的文件夹 A 时将文件复制到文件夹 B)
更新 这是我目前所拥有的
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")
但每次调用时它都会复制所有文件...
这就是我最后所做的,以获取在过去 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")
我在 windows 共享 (A) 上每 10 分钟添加一次文件(具有不同的扩展名),我想将它们复制到 linux 服务器 (B) 并在他们用脚本。
使用 ruby 和 FilesUtils 如何创建一个脚本 仅复制最后添加的文件(或者有一个观察者将文件添加到我的文件夹 A 时将文件复制到文件夹 B)
更新 这是我目前所拥有的
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")
但每次调用时它都会复制所有文件...
这就是我最后所做的,以获取在过去 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")