Wrote some ruby scripts to help with restore
authorCarl N Baldwin <cnb@hpsvcnb.fc.hp.com>
Thu, 20 Oct 2005 16:31:26 +0000 (10:31 -0600)
committerCarl N Baldwin <cnb@hpsvcnb.fc.hp.com>
Thu, 20 Oct 2005 16:31:26 +0000 (10:31 -0600)
scripts/Makefile.am
scripts/files-from-date.rb [new file with mode: 0755]
scripts/find-cmd.sh
scripts/list-dates.rb

index 1d1126c73e128d475327a2009f5c5c4e4cf1385e..6711a003ea687e3b96121d3a7345c482dac3246c 100644 (file)
@@ -1,4 +1,5 @@
 bin_SCRIPTS = \
+  files-from-date.rb \
   find-cmd.sh \
   list-dates.rb \
   other-commands \
diff --git a/scripts/files-from-date.rb b/scripts/files-from-date.rb
new file mode 100755 (executable)
index 0000000..4fde0c5
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/bin/ruby
+
+# Make sure the record separator is zero rather than new-line
+$/ = "\0"
+
+# The only argument is the date for which to list files
+date = ARGV.shift.to_i
+
+ARGF.each do |line|
+  # The seventh and eigth fields are the backup date and the file name.
+  backupdate,name = line.split( ' ', 8 )[6,7]
+
+  # Print the name if the backup date matches
+  print name if date == backupdate.to_i
+end
index 964dd15bfef542c08319903827d626dd78a63c6c..d9efb29b2a3ef011b82427ad865e0a909bc74831 100755 (executable)
@@ -2,6 +2,6 @@
 
 {
   for type in d f l; do
-    find . -type $type -printf "$type %#m %u %g %s %CY%Cm%Cd%CH%CM%CS 0 %p\0"
+    find . -type $type -printf "$type %#m %u %g %s %CY%Cm%Cd%CH%CM%CS %CS %p\0"
   done
 }
index b8a5c5099efc057853c162dc0fe61a032e14190d..18cdef98418ccae7b6cd6bf4fcef24a2de738924 100755 (executable)
@@ -1,14 +1,17 @@
 #!/usr/bin/ruby
 
+# Make sure the record separator is zero rather than new-line
+$/ = "\0"
+
+# Create a set of backup dates
 require 'set'
+dates = SortedSet.new
 
-dates = Set.new
+# Split each input record into 8 fields on spaces and grab the 7th as integer
+date_array = ARGF.map { |rec| rec.split( ' ', 8 )[6].to_i }
 
-ARGF.each( "\0" ) do |line|
-  fields = line.split ' ', 8
-  dates.add fields[6]
-end
+# Merge the dates into the set
+dates.merge date_array
 
-dates.each do |date|
-  puts date
-end
+# Output the sorted set
+puts dates.to_a