struggle 2.3.5 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/generators/struggle/backup_config_generator.rb +14 -0
- data/lib/struggle/backup.rb +62 -0
- data/lib/struggle/sql.rb +1 -0
- data/lib/struggle.rb +1 -0
- data/lib/templates/backup.yml +10 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80baef3cddc4ff506f15cb285aa4e635156858c5
|
4
|
+
data.tar.gz: 1d37cf7398b8c2326072da3502dc800e1b5d8422
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64c3f18846f0c6802451ddfddebdfe43206f61e4c97b425eb174cc4536cb26e488bda423d5413923bd62c9ee5b031c8f2848b39487ab3a3a996ae86c82411fc7
|
7
|
+
data.tar.gz: 9e28466f11ec697087eeae226d2dbb2a3c80b03826392e941df13bef9e6914304cc57c8b7d7e16525eff37dd7315485b4d6c25034d6fa3d852071b709a9e2b9d
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module Struggle
|
4
|
+
module Generators
|
5
|
+
class BackupConfigGenerator < Rails::Generators::Base
|
6
|
+
desc "create backup export config file"
|
7
|
+
def create_backup_config
|
8
|
+
libdir = File.expand_path(File.dirname(__FILE__))
|
9
|
+
backup_config = File.expand_path("../../templates/backup.yml", libdir)
|
10
|
+
FileUtils.cp(backup_config, "config/backup.yml")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# 备份数据库和文件
|
2
|
+
# 生成配置文件命令 rails g struggle:sql_config
|
3
|
+
# Struggle::Backup.new.do 执行备份
|
4
|
+
module Struggle
|
5
|
+
class Backup
|
6
|
+
# 初始化配置文件
|
7
|
+
def initialize
|
8
|
+
_config = YAML.load_file("#{Rails.root}/config/backup.yml")
|
9
|
+
@@config = _config.merge(YAML.load_file("#{Rails.root}/config/database.yml")[_config["env"]])
|
10
|
+
@@config["backup_path"] = File.expand_path(@@config["backup_path"], Rails.root)
|
11
|
+
@@now = Time.now
|
12
|
+
# 备份路径创建
|
13
|
+
# 参数now,创建时间,默认当前
|
14
|
+
@@dir = "#{@@config["backup_path"]}/#{@@now.year}/#{@@now.month}/#{@@now.day}"
|
15
|
+
unless Dir.exist? @@dir
|
16
|
+
FileUtils.mkdir_p @@dir
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# 备份数据库
|
21
|
+
def database_backup
|
22
|
+
_filename = "#{@@config["database"]}-#{@@now.strftime("%Y%m%d%H%M%S")}"
|
23
|
+
filename = @@config["adapter"] == "oracle_enhanced" ? "#{_filename}.dmp" : "#{_filename}.sql"
|
24
|
+
if @@config["adapter"] == "mysql2"
|
25
|
+
system("mysqldump -u#{@@config["username"]} -p#{@@config["password"]} -d #{@@config["database"]}>#{filename}")
|
26
|
+
elsif @@config["adapter"] == "postgresql"
|
27
|
+
system("pg_dump -U #{@@config["username"]} -d #{@@config["database"]} -E utf8 -f #{filename} -w")
|
28
|
+
elsif @@config["adapter"] == "oracle_enhanced"
|
29
|
+
system("exp #{@@config["username"]}/#{@@config["password"]}@#{@@config["database"]} file=#{filename} full=y")
|
30
|
+
end
|
31
|
+
Struggle::ZipTool.file(filename, "#{@@dir}/#{_filename}.zip")
|
32
|
+
File.delete filename
|
33
|
+
end
|
34
|
+
|
35
|
+
# 备份文件
|
36
|
+
def file_backup
|
37
|
+
@@config["asset_paths"].each do |assetPath|
|
38
|
+
assetPath = "#{Rails.root}/#{assetPath}"
|
39
|
+
ridx = assetPath.rindex("/") || 0
|
40
|
+
Struggle::ZipTool.dir(assetPath, "#{@@dir}/#{assetPath[ridx..assetPath.length - 1]}-#{@@now.strftime("%Y%m%d%H%M%S")}.zip")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# ftp上传
|
45
|
+
def ftp_backup
|
46
|
+
_filename = "backup-#{@@now.strftime("%Y%m%d%H%M%S")}.zip"
|
47
|
+
ftp_config = @@config["ftp"]
|
48
|
+
Struggle::ZipTool.dir(@@dir, _filename)
|
49
|
+
Struggle::FtpTool.new(ftp_config["ip"], ftp_config["username"], ftp_config["password"]).put(_filename, ftp_config["backup_path"])
|
50
|
+
File.delete _filename
|
51
|
+
end
|
52
|
+
|
53
|
+
# 备份
|
54
|
+
def do
|
55
|
+
database_backup
|
56
|
+
file_backup
|
57
|
+
if @@config["mode"] == "ftp"
|
58
|
+
ftp_backup
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/struggle/sql.rb
CHANGED
data/lib/struggle.rb
CHANGED
@@ -23,6 +23,7 @@ require 'struggle/concerns/time_extend'
|
|
23
23
|
require "struggle/ftp_tool"
|
24
24
|
require "struggle/zip_tool"
|
25
25
|
require 'struggle/sql'
|
26
|
+
require 'struggle/backup'
|
26
27
|
require 'pay/jd_gateway'
|
27
28
|
String.send :include, Struggle::StringExtend
|
28
29
|
Integer.send :include, Struggle::IntExtend
|
@@ -0,0 +1,10 @@
|
|
1
|
+
asset_paths: ["/public/system"] #rails项目根目录,备份静态文件路径,如果没有填[]
|
2
|
+
backup_path: "../backups" #rails项目根目录,备份目录
|
3
|
+
env: "production" #产品环境
|
4
|
+
mode: "local" #备份模式:local | ftp
|
5
|
+
ftp: { #ftp配置
|
6
|
+
ip: "139.129.195.138", #ftp ip地址
|
7
|
+
username: "ftpuser", #ftp 账号
|
8
|
+
password: "ftp123", #ftp 密码
|
9
|
+
backup_path: "/backups/nanguanzhujian_images/" #ftp 服务器备份路径
|
10
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: struggle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lean
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: iconv
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: code,tfile,pager,http,logistic,pay,tmagick,class_extend,aes,rsa,ftp_tool,zip_tool,sql;
|
55
|
+
description: code,tfile,pager,http,logistic,pay,tmagick,class_extend,aes,rsa,ftp_tool,zip_tool,sql,backup;
|
56
56
|
email: 54850915@qq.com
|
57
57
|
executables: []
|
58
58
|
extensions: []
|
@@ -60,10 +60,12 @@ extra_rdoc_files:
|
|
60
60
|
- README.md
|
61
61
|
files:
|
62
62
|
- README.md
|
63
|
+
- lib/generators/struggle/backup_config_generator.rb
|
63
64
|
- lib/generators/struggle/sql_config_generator.rb
|
64
65
|
- lib/pay/jd_gateway.rb
|
65
66
|
- lib/struggle.rb
|
66
67
|
- lib/struggle/aes.rb
|
68
|
+
- lib/struggle/backup.rb
|
67
69
|
- lib/struggle/code.rb
|
68
70
|
- lib/struggle/concerns/decimal_extend.rb
|
69
71
|
- lib/struggle/concerns/int_extend.rb
|
@@ -82,6 +84,7 @@ files:
|
|
82
84
|
- lib/struggle/tfile.rb
|
83
85
|
- lib/struggle/tmagick.rb
|
84
86
|
- lib/struggle/zip_tool.rb
|
87
|
+
- lib/templates/backup.yml
|
85
88
|
- lib/templates/tsql_config.yml
|
86
89
|
homepage: http://rubygems.org/gems/struggle
|
87
90
|
licenses:
|