Ruby on Rails框架程序连接MongoDB的教程(mongodb和python交互)难以置信

随心笔谈12个月前发布 admin
97 0


#!/usr/local/bin/ruby
# date: 06-12-2014
# auther: lucifer
# use fsync and lock to the file-system before backup the file-system
# mongo-ruby-driver version > 1.10.0

require ‘mongo’
require ‘fileutils’
require ‘date’

include Mongo
include BSON

# the members of replcation-set
# test mongodb server version 2.6.0
# host=”192.168.11.51″

# The port of members
# If the port is 27017 by default then otherport don’t need to assignment
# otherport=””
# port=otherport.length !=0 ? otherport : MongoClient::DEFAULT_PORT

# opts={:pool_size=> 5, :pool_timeout=> 10}
# Create a new connection
# client=MongoClient.new(host, port, opts)

uri_string=”mongodb://caoqing:xxxxxxxx@x.x.x.x:27017/admin”
client=MongoClient.from_uri(uri=”#{uri_string}”)
db=client[‘admin’]

# fsync and lock the database
cmd=OrderedHash.new
cmd[:fsync]=1
cmd[:lock]=true
# p cmd
db.command(cmd)

# datafile path
d=”/var/lib/mongo”

# dir=Dir.new(“#{d}”)
# entries=dir.entries
# entries.delete_if { |entry| entry=~ /^\https://www.jb51.net/article/}
# convert the relative path to the full path
# entries.map! { |entry| File.join(dir.path, entry) }
# maintain only the type of file
# entries.delete_if { |entry| !File.file?(entry) }
# p entries

start=Date.today.to_s
prev=(Date.today – 7).to_s

dest=”/backup/#{start}”
sour=”/backup/#{prev}”

FileUtils.rm_rf(“#{sour}”) if File::exist?(“#{sour}”)

Dir.mkdir(“#{dest}”, 0755) unless File::exist?(“#{dest}”)

FileUtils.cp_r Dir.glob(“#{d}/**”), dest if client.locked?

puts “*” * 20
puts “\tbackup complete”
puts “*” * 20

# DB::SYSTEM_COMMAND_COLLECTION
# unlock the database
db[“$cmd.sys.unlock”].find_one
client.close

© 版权声明

相关文章