qdumpfs 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +43 -8
- data/lib/qdumpfs.rb +17 -23
- data/lib/qdumpfs/option.rb +3 -3
- data/lib/qdumpfs/version.rb +1 -1
- data/run_qdumpfs.sh +0 -0
- data/test_pdumpfs/pdumpfs-test +0 -0
- data/test_qdumpfs.sh +6 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fe2d92b26abfc9df013c1affc9b3576ef4fe006d872909c8d7b637a6f9ca38a
|
4
|
+
data.tar.gz: 919639dab6b87bea4ffc1ea0da988e00e442abc49641f698001e2353a3bf0857
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44ccd6920a656c9f796a90832fe04fe1661da1ad492a22fe5661b8b2de7cd3d6b5294ba166f672fd02fcd6b49bc638c26e57db9689c3d5e403dd91425de85b0a
|
7
|
+
data.tar.gz: f9f037f8b506efb3b8b47b35bae102ca086c77c00feb360aec20bcea9adfc6de4555331aaf6dbaf24b98417530fd35aef2270f51646402df6e9fcabdbfb57afd
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -6,21 +6,56 @@ qdumpfs is a modified version of pdumpfs.
|
|
6
6
|
|
7
7
|
gem install qdumpfs
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
|
12
|
+
```
|
13
|
+
Usage: qdumpfs [options] <source> <dest>
|
14
|
+
-h, --help show this message
|
15
|
+
Options
|
16
|
+
-v, --verbose verbose message
|
17
|
+
-r, --report report message
|
18
|
+
-n, --dry-run don't actually run any commands
|
19
|
+
-e, --exclude=PATTERN exclude files/directories matching PATTERN
|
20
|
+
-s, --exclude-by-size=SIZE exclude files larger than SIZE
|
21
|
+
-w, --exclude-by-glob=GLOB exclude files matching GLOB
|
22
|
+
-c, --command=COMMAND backup|sync|list|expire|verify|test
|
23
|
+
-l, --limit=HOURS limit hours
|
24
|
+
-k, --keep=KEEPARG ex: --keep 100Y12M12W30D (100years, 12months, 12weeks, 30days, default)
|
11
25
|
```
|
12
26
|
|
13
|
-
|
27
|
+
## Example
|
14
28
|
|
15
|
-
|
29
|
+
Backup your home directory, run the following command.
|
30
|
+
```
|
31
|
+
qdumpfs /home/foo /backup
|
32
|
+
```
|
16
33
|
|
17
|
-
|
34
|
+
You can specify command option(default is "backup").
|
35
|
+
```
|
36
|
+
qdumpfs --command=backup /home/foo /backup
|
37
|
+
```
|
18
38
|
|
19
|
-
|
39
|
+
Sync two backup directories.
|
40
|
+
```
|
41
|
+
qdumpfs --command=sync /backup1 /backup2
|
42
|
+
```
|
20
43
|
|
21
|
-
|
44
|
+
Sync two backup directories(limit 1 hours, keep 100Y12M12W30D).
|
45
|
+
```
|
46
|
+
qdumpfs --command=sync --limit=1 /backup1 /backup2
|
47
|
+
```
|
48
|
+
|
49
|
+
Sync two backup directories(limit 1 hours, keep specified backups only).
|
50
|
+
```
|
51
|
+
qdumpfs --command=sync --limit=1 --keep=5Y6M7W10D --keep/backup1 /backup2
|
52
|
+
```
|
53
|
+
|
54
|
+
Expire backup directory.
|
55
|
+
```
|
56
|
+
qdumpfs --command=expire --limit=1 --keep=5Y6M7W10D --keep/backup1 /backup2
|
57
|
+
```
|
22
58
|
|
23
|
-
qdumpfs srcdir dstdir
|
24
59
|
|
25
60
|
## License
|
26
61
|
|
data/lib/qdumpfs.rb
CHANGED
@@ -19,8 +19,8 @@ module Qdumpfs
|
|
19
19
|
opts = {}
|
20
20
|
opt = OptionParser.new(argv)
|
21
21
|
opt.version = VERSION
|
22
|
-
opt.banner = "Usage: #{opt.program_name} [
|
23
|
-
opt.separator('')
|
22
|
+
opt.banner = "Usage: #{opt.program_name} [options] <source> <dest>"
|
23
|
+
opt.separator('Options')
|
24
24
|
opt.on_head('-h', '--help', 'show this message') do |v|
|
25
25
|
puts opt.help
|
26
26
|
exit
|
@@ -34,24 +34,26 @@ module Qdumpfs
|
|
34
34
|
}
|
35
35
|
opt.on('-s SIZE', '--exclude-by-size=SIZE', 'exclude files larger than SIZE') {|v| opts[:es] = v }
|
36
36
|
opt.on('-w GLOB', '--exclude-by-glob=GLOB', 'exclude files matching GLOB') {|v| opts[:ep] = v }
|
37
|
-
commands = ['backup', 'sync', 'list', 'expire', 'verify'
|
37
|
+
commands = ['backup', 'sync', 'list', 'expire', 'verify']
|
38
38
|
opt.on('-c COMMAND', '--command=COMMAND', commands, commands.join('|')) {|v| opts[:c] = v}
|
39
39
|
opt.on('-l HOURS', '--limit=HOURS', 'limit hours') {|v| opts[:limit] = v}
|
40
40
|
opt.on('-k KEEPARG', '--keep=KEEPARG', 'ex: --keep 100Y12M12W30D (100years, 12months, 12weeks, 30days, default)') {|v| opts[:keep] = v}
|
41
|
-
|
42
|
-
|
41
|
+
opt.on('--logdir LOGDIR', 'logdir') {|v| opts[:logdir] = v}
|
43
42
|
opt.parse!(argv)
|
44
43
|
option = Option.new(opts, ARGV)
|
45
|
-
|
44
|
+
if opts[:v]
|
45
|
+
puts "<<<<< qdumpfs options >>>>> "
|
46
|
+
puts "logdir: #{option.logdir}"
|
47
|
+
puts "logpath: #{option.logpath}"
|
48
|
+
puts "verifypath: #{option.verifypath}"
|
49
|
+
puts
|
50
|
+
end
|
46
51
|
begin
|
47
52
|
command = Command.new(option)
|
48
53
|
command.run
|
49
|
-
rescue ArgumentError => e
|
50
|
-
puts e.message, e.backtrace
|
51
|
-
puts opt.help
|
52
|
-
exit
|
53
54
|
rescue => e
|
54
|
-
puts
|
55
|
+
puts opt.help
|
56
|
+
exit
|
55
57
|
end
|
56
58
|
end
|
57
59
|
|
@@ -70,9 +72,9 @@ module Qdumpfs
|
|
70
72
|
expire
|
71
73
|
elsif @opt.cmd == 'verify'
|
72
74
|
verify
|
73
|
-
elsif @opt.cmd == 'test'
|
74
|
-
test
|
75
|
-
else
|
75
|
+
# elsif @opt.cmd == 'test'
|
76
|
+
# test
|
77
|
+
# else
|
76
78
|
raise RuntimeError, "unknown command: #{cmd}"
|
77
79
|
end
|
78
80
|
end
|
@@ -394,15 +396,7 @@ module Qdumpfs
|
|
394
396
|
diff = time_diff(start_time, end_time)
|
395
397
|
log("##### sync end #{fmt(end_time)} diff=#{diff} last_sync_complete=#{last_sync_complete} #####")
|
396
398
|
end
|
397
|
-
|
398
|
-
def open_verify_file
|
399
|
-
filename = File.join(@log_dir, 'verify.txt')
|
400
|
-
if FileTest.file?(filename)
|
401
|
-
File.unlink(filename)
|
402
|
-
end
|
403
|
-
File.open(filename, 'a')
|
404
|
-
end
|
405
|
-
|
399
|
+
|
406
400
|
def verify
|
407
401
|
file = @opt.open_verifyfile
|
408
402
|
|
data/lib/qdumpfs/option.rb
CHANGED
@@ -109,9 +109,9 @@ module Qdumpfs
|
|
109
109
|
@cmd = @opts[:c] || 'backup'
|
110
110
|
|
111
111
|
# @logger = NullLogger.new
|
112
|
-
logfile =
|
112
|
+
logfile = 'qdumpfs.log'
|
113
113
|
#ログディレクトリの作成
|
114
|
-
@logdir =
|
114
|
+
@logdir = @opts[:logdir] || Dir.pwd
|
115
115
|
Dir.mkdir(@logdir) unless FileTest.directory?(@logdir)
|
116
116
|
@logpath = File.join(@logdir, logfile)
|
117
117
|
@logger = SimpleLogger.new(@logpath)
|
@@ -143,7 +143,7 @@ module Qdumpfs
|
|
143
143
|
end
|
144
144
|
attr_reader :dirs, :src, :dst, :cmd
|
145
145
|
attr_reader :keep_year, :keep_month, :keep_week, :keep_day
|
146
|
-
attr_reader :logdir, :
|
146
|
+
attr_reader :logdir, :logpath, :verifypath
|
147
147
|
attr_reader :logger, :matcher, :reporter, :interval_proc
|
148
148
|
|
149
149
|
def report(type, filename)
|
data/lib/qdumpfs/version.rb
CHANGED
data/run_qdumpfs.sh
CHANGED
File without changes
|
data/test_pdumpfs/pdumpfs-test
CHANGED
File without changes
|
data/test_qdumpfs.sh
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qdumpfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- src
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- test_pdumpfs/data/foo
|
92
92
|
- test_pdumpfs/data/secret/secret
|
93
93
|
- test_pdumpfs/pdumpfs-test
|
94
|
+
- test_qdumpfs.sh
|
94
95
|
homepage: https://github.com/src256/qdumpfs
|
95
96
|
licenses:
|
96
97
|
- MIT
|