qdumpfs 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ceaa58593a1a92b6d0c9f2d76bd7ed5a75822c0452a2551781946ec73d8a6ad5
4
- data.tar.gz: caf81857a389d2a81094f167e8160195ab8c5fd107fbbef4387d7303a4e12a3b
3
+ metadata.gz: 3fe2d92b26abfc9df013c1affc9b3576ef4fe006d872909c8d7b637a6f9ca38a
4
+ data.tar.gz: 919639dab6b87bea4ffc1ea0da988e00e442abc49641f698001e2353a3bf0857
5
5
  SHA512:
6
- metadata.gz: 17439939c7fd6e82f8ad6a560d9faaf5d268c275e121c1939ddc574f0c99e3aba807fe301b282b226b19f2b676b3802bd8016c130ed2d95765380406fca91f1f
7
- data.tar.gz: 3f5f378da6ca8e0a4f3a9732227a099909bb15748066d64da7b10c642b66bb1a877d4262b29aa98cf5b44ae9b78bc6b5d0d806fe19fe99e9cb670b490509f7f0
6
+ metadata.gz: 44ccd6920a656c9f796a90832fe04fe1661da1ad492a22fe5661b8b2de7cd3d6b5294ba166f672fd02fcd6b49bc638c26e57db9689c3d5e403dd91425de85b0a
7
+ data.tar.gz: f9f037f8b506efb3b8b47b35bae102ca086c77c00feb360aec20bcea9adfc6de4555331aaf6dbaf24b98417530fd35aef2270f51646402df6e9fcabdbfb57afd
data/.gitignore CHANGED
@@ -11,4 +11,5 @@ list*
11
11
  log.txt
12
12
  *test.cmd
13
13
  test*.cmd
14
+ *.log
14
15
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qdumpfs (0.4.0)
4
+ qdumpfs (0.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
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
- ```ruby
10
- gem 'qdumpfs'
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
- And then execute:
27
+ ## Example
14
28
 
15
- $ bundle
29
+ Backup your home directory, run the following command.
30
+ ```
31
+ qdumpfs /home/foo /backup
32
+ ```
16
33
 
17
- Or install it yourself as:
34
+ You can specify command option(default is "backup").
35
+ ```
36
+ qdumpfs --command=backup /home/foo /backup
37
+ ```
18
38
 
19
- $ gem install qdumpfs
39
+ Sync two backup directories.
40
+ ```
41
+ qdumpfs --command=sync /backup1 /backup2
42
+ ```
20
43
 
21
- ## Usage
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
 
@@ -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} [-h|--help]"
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', 'test']
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 e.message, e.backtrace
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
 
@@ -109,9 +109,9 @@ module Qdumpfs
109
109
  @cmd = @opts[:c] || 'backup'
110
110
 
111
111
  # @logger = NullLogger.new
112
- logfile = @opts[:logfile] || 'log.txt'
112
+ logfile = 'qdumpfs.log'
113
113
  #ログディレクトリの作成
114
- @logdir = File.expand_path('.')
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, :logfile, :verifyfile
146
+ attr_reader :logdir, :logpath, :verifypath
147
147
  attr_reader :logger, :matcher, :reporter, :interval_proc
148
148
 
149
149
  def report(type, filename)
@@ -1,3 +1,3 @@
1
1
  module Qdumpfs
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
File without changes
File without changes
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ curdir=$(dirname $0)
4
+ bundle exec ruby $curdir/exe/qdumpfs $* ~/_qdumpfs/src ~/_qdumpfs/dst
5
+
6
+
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.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-05-16 00:00:00.000000000 Z
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