Skip to content
Snippets Groups Projects
Commit 5c7f0810 authored by Per Cederqvist's avatar Per Cederqvist
Browse files

Added the lysrdiff-sizechange utility.

* lysrdiff-sizechange.py: New script.  Report the most recent size
  change of each backup task.

* Makefile (install): Added lysrdiff-sizechange.py.
parent 6b5c9834
No related branches found
No related tags found
No related merge requests found
2007-06-14 Per Cederqvist <ceder@shafan.lysator.liu.se> 2007-06-14 Per Cederqvist <ceder@shafan.lysator.liu.se>
Added the lysrdiff-sizechange utility.
* lysrdiff-sizechange.py: New script. Report the most recent size
change of each backup task.
* Makefile (install): Added lysrdiff-sizechange.py.
New options --continue and --only-clone. Better remote watching New options --continue and --only-clone. Better remote watching
of the status. of the status.
......
...@@ -12,6 +12,7 @@ install: install-one-task ...@@ -12,6 +12,7 @@ install: install-one-task
cp lysrdiff-move-obsolete $(BINDIR)/ cp lysrdiff-move-obsolete $(BINDIR)/
cp lysrdiff-move-job $(BINDIR)/ cp lysrdiff-move-job $(BINDIR)/
cp lysrdiff-label-disk $(BINDIR)/ cp lysrdiff-label-disk $(BINDIR)/
cp lysrdiff-sizechange.py $(BINDIR)/
install-one-task: install-one-task:
cp backup-one-task $(BINDIR)/ cp backup-one-task $(BINDIR)/
......
#!/usr/bin/env python
import os
import sys
def root(disk, part):
return "/lysrdiff/%d/perm/%d/lysrdiff" % (disk, part)
def taskfile(disk, part):
return "%s/tasks" % root(disk, part)
def summary_file(disk, part, category, subcategory):
return "%s/backups/%s/%s/backup-summary.txt" % (
root(disk, part), category, subcategory)
def parse_summary(line):
start_date, start_time, end_date, end_time, infotext = line.split(" ", 4)
info = {}
for item in infotext.split(" "):
key, val = item.split("=", 1)
info[key] = val
return (start_date + " " + start_time,
end_date + " " + end_time,
info)
def report_sizechange(disk, part, category, subcategory):
prev = 0
curr = 0
for line in open(summary_file(disk, part, category, subcategory)):
start, end, info = parse_summary(line)
sz = info.get("totalsize")
if sz is not None:
try:
sz = int(sz)
prev = curr
curr = sz
except ValueError:
pass
print curr - prev, category, subcategory
def report_partition_sizechange(disk, part):
for line in open(taskfile(disk, part)):
category, subcategory, server, origin = line.split(" ", 3)
report_sizechange(disk, part, category, subcategory)
def main():
for spec in sys.argv[1:]:
disk, part = spec.split("/")
report_partition_sizechange(int(disk), int(part))
if __name__ == '__main__':
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment