zfstools 0.2.2 → 0.3.0
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.
- data/README.md +8 -0
- data/VERSION +1 -1
- data/lib/zfstools.rb +1 -1
- data/lib/zfstools/dataset.rb +1 -1
- data/lib/zfstools/snapshot.rb +5 -0
- data/zfstools.gemspec +2 -2
- metadata +17 -17
data/README.md
CHANGED
@@ -49,6 +49,14 @@ Setting a MySQL dataset's property to `mysql` will hook it into the `zfs-snapsho
|
|
49
49
|
|
50
50
|
zfs set com.sun:auto-snapshot=mysql DATASET
|
51
51
|
|
52
|
+
##### PostgreSQL Support
|
53
|
+
|
54
|
+
Setting a PostgreSQL dataset's property to `postgresql` will cause zfs-auto-snapshot to put postgresql in online backup mode for the snapshot.
|
55
|
+
|
56
|
+
zfs set com.sun:auto-snapshot=postgresql DATASET
|
57
|
+
|
58
|
+
The user executing `zfs-auto-snapshot` will require passwordless login to the `postgres` database and will require either REPLICATION or SUPERUSER privileges. The easiest approach is to set up a trust or ident record in your pg_hba.conf. The `zfs-auto-snapshot` script will execute pg_start_backup() prior to saving the snapshot and execute pg_stop_backup() afterwards.
|
59
|
+
|
52
60
|
##### Overrides
|
53
61
|
|
54
62
|
You can override a child dataset to use, or not use auto snapshotting by settings its flag with the given interval.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/zfstools.rb
CHANGED
@@ -111,7 +111,7 @@ def filter_datasets(datasets, included_excluded_datasets, property)
|
|
111
111
|
# If the dataset is already included/excluded, skip it (for override checking)
|
112
112
|
next if all_datasets.include? dataset
|
113
113
|
value = dataset.properties[property]
|
114
|
-
if
|
114
|
+
if ["true","mysql","postgresql"].include? value
|
115
115
|
included_excluded_datasets['included'] << dataset
|
116
116
|
elsif value
|
117
117
|
included_excluded_datasets['excluded'] << dataset
|
data/lib/zfstools/dataset.rb
CHANGED
@@ -6,7 +6,7 @@ module Zfs
|
|
6
6
|
def initialize(name, properties={}, options={})
|
7
7
|
@name = name
|
8
8
|
@properties = properties
|
9
|
-
if properties[snapshot_property]
|
9
|
+
if ["mysql","postgresql"].include? properties[snapshot_property]
|
10
10
|
self.contains_db!(properties[snapshot_property])
|
11
11
|
end
|
12
12
|
end
|
data/lib/zfstools/snapshot.rb
CHANGED
@@ -59,6 +59,11 @@ module Zfs
|
|
59
59
|
UNLOCK TABLES;
|
60
60
|
EOF
|
61
61
|
cmd = %Q[mysql -e "#{sql_query}"]
|
62
|
+
when 'postgresql'
|
63
|
+
sql_pre_query = "SELECT PG_START_BACKUP('zfs-auto-snapshot');"
|
64
|
+
sql_post_query = "SLEECT PG_STOP_BACKUP();"
|
65
|
+
zfs_cmd = cmd
|
66
|
+
cmd = %Q[(psql -c "#{sql_pre_query}" postgres && #{zfs_cmd} ) ; psql -c "#{sql_post_query}" postgres]
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
data/zfstools.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "zfstools"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bryan Drewery"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-09-18"
|
13
13
|
s.description = "ZFS admin scripts, such as automatic snapshots, mysql snapshotting, scrubbing, etc."
|
14
14
|
s.email = "bryan@shatow.net"
|
15
15
|
s.executables = ["zfs-auto-snapshot", "zfs-cleanup-snapshots", "zfs-snapshot-mysql"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zfstools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &16686440 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *16686440
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yard
|
27
|
-
requirement: &
|
27
|
+
requirement: &16683840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.7'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *16683840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rdoc
|
38
|
-
requirement: &
|
38
|
+
requirement: &16698280 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '3.12'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *16698280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cucumber
|
49
|
-
requirement: &
|
49
|
+
requirement: &16697540 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *16697540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &16696100 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *16696100
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: jeweler
|
71
|
-
requirement: &
|
71
|
+
requirement: &16693840 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.8.3
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *16693840
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: simplecov
|
82
|
-
requirement: &
|
82
|
+
requirement: &16692980 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *16692980
|
91
91
|
description: ZFS admin scripts, such as automatic snapshots, mysql snapshotting, scrubbing,
|
92
92
|
etc.
|
93
93
|
email: bryan@shatow.net
|
@@ -137,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
segments:
|
139
139
|
- 0
|
140
|
-
hash:
|
140
|
+
hash: 365318782876626862
|
141
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
142
|
none: false
|
143
143
|
requirements:
|