生产环境每小时自动备份数据库,压缩后上传到公司ftp服务器上,ftp服务器部署在公司内网。所以我每次使用生成环境数据库做开发时,都需要访问ftp服务器共享文件夹,找到最新的备份文件,然后用7z打开,找到所需的数据库备份文件,然后再使用SQL Server企业管理器还原数据库。
经历了几十次这样的操作后,我决定要写个程序来帮我做这些事。最初打算用bat脚本,在查找最新创建文件时遇到困难,而后使用c#,在使用Process.Start方法传参时遇到困难(参数值中带有空格,需要用双引号包裹),最后终于用ruby实现了,整个思考、实践的过程耗时一天半。
代码如下:
# 一键恢复saas0数据库,从10服务器上获取最新备份压缩文件,解压缩后找到saas0数据库备份文件,然后还原数据库
# 在执行过程中会建立临时文件夹c:/~one-click-resotre-temp
require 'find'
require 'FileUtils'
# 建立访问授权
`net use \\\\192.168.99.10\\ipc$ "密码" /user:"administrator"`
# 找到最后修改的文件
latestFile = nil
Find.find('\\\\192.168.99.10\\d$\\FTP') {|file| latestFile = file if file =~ /all_.*\.7z/ && (latestFile.nil? || File.mtime(latestFile) < File.mtime(file))}
# 建立本地临时文件夹
tempDir = "c:/~one-click-resotre-temp"
Dir.mkdir(tempDir) unless File.exists?(tempDir)
# 解压缩到本地
system "7z x \"#{latestFile}\" -o#{tempDir}"
# 重启sql server服务
`net stop mssqlserver`
`net start mssqlserver`
# 还原saas0数据库
dbname = "saas0"
bakfile = Dir.glob(File.join(tempDir, 'saas*.bak')).first.to_s
system "isql /localhost /U sa /P /Q \"restore database #{dbname} from disk = '#{bakfile}' WITH MOVE '#{dbname}_Data' TO 'D:\\Data\\SQL Server\\#{dbname}_Data.mdf',MOVE '#{dbname}_Log' TO 'D:\\Data\\SQL Server\\#{dbname}_Log.ldf', REPLACE\""
# 清空密码
system "isql /localhost /U sa /P /Q \"update #{dbname}..MEM_User set HashedPassword = null\""
# 清理临时文件夹
FileUtils.rmtree(tempDir) if File.exists?(tempDir)
puts "\r\ndone."
将上述代码保存为one-click-resotre.rb,再写一个bat完事。
ruby one-click-resotre.rb
pause
分享到:
相关推荐
ruby脚本交互.rar
ruby脚本编辑器.rar
ngx_ruby 是嵌入 ruby 脚本的 Nginx 模块
Ruby脚本语言经典教程
这是一个把ruby脚本代码转化为exe可执行文件转化后文件有点大。ruby2.0有望改进这方面的支持
易语言ruby脚本交互源码,ruby脚本交互,信息框_,加载内存DLL,释放内存DLL,取DLL导出函数地址,GetIntegerAddress,GetArrayDataAddress,脚本_直接执行,脚本_定义模块,脚本_初始化,脚本_定义类,脚本_定义类方法,脚本_...
搭建redis集群,使用ruby脚本搭建集群。 redis-3.0.0.gem
ruby脚本,用来分析case覆盖率,文件名,文件个数等等
Ruby是一种功能强大的面向对象的脚本语言,可以使用它方便快捷地进行面向对象程序设计。与Perl类似,而且Ruby具有强大的文本处理功能,使文本处理变得简单。此外还可以方便地使用C语言来扩展Ruby的功能。
测试用 建立组织机构Ruby脚本 脚本基于GEPS接口,采用Ruby脚本编写;
易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器...
这是一个将ruby脚本转换成二进制可执行文件的工具,使用简单方便,功能强大,解压编译后生成rubyc可执行程序!转换ruby脚本时 使用rubyc 脚本.rb即可,可以自动检测依赖关系!使用非常方便!
Ruby 版数据库连接池, 可以参考。 数据库是postgresql
jira-omnifocus, 创建和管理OmniFocus任务的ruby 脚本在你的Jira脚本上 创建和管理基于你的JIRA票证的OmniFocus任务的ruby 脚本...
易语言源码易语言ruby脚本交互源码.rar
Ruby 连接数据库资源汇总。包括有:Ruby连接Mysql,oracle,postgreSQL,sqlite等包.还有ruby/DBI. 有GEM包,也有源代码包。
易语言源码ruby脚本编辑器易语言源码.rar
Ruby脚本hackery手动修复损坏的hbase_Ruby_下载.zip
了解游戏脚本编程的基础,初步了解ruby的语法和基本用法。联系python和lua(WOW用到的脚本语言),让你透视脚本语言的奥秘!
ruby ssh备份远程服务器脚本,主要是学习net/scp这个模块