#!/opt/tcl803/bin/sytcl # loadlibindex /opt/share/tcl/lib/ucodb/ucodb.tlib global env global sybmsg set base metabase set server KSUMMIT set uname guest set pass harmless # # go to the work directory cd /u/de/data/xerox set err [catch {set dbpipe1 [sybOpen $base $uname $pass $server]} res] if {$err} { puts stderr "NO SYBASE CONNECTION $res" exit } # set lfp [open /u/de/SanityCount.log a] # set now [clock seconds] set datestr [clock format $now] # puts $lfp "********************** RUN ************************" puts $lfp "DATE STR $datestr, TOY $now" lassign $datestr wday mon day time zone year puts $lfp "wday\t$wday\nday\t$day\nmon\t$mon\ntime\t$time\nzone\t$zone\nyear\t$year" # set sqt metabase.dbo.LastXerox set sqlcmd "select stamp from metabase.dbo.LastXerox where server='KSUMMIT'" doSQL 1 set lastupf [sybNext 1] puts $lfp "LASTUPF $lastupf" eval lassign $lastupf lmon lday lyr ltim set lastup [clock scan "$lmon $lday $ltim $lyr"] # if {![file exists /u/de/data/xerox/Done]} { puts $lfp "ERROR ERROR ERROR" puts $lfp "No file u/de/data/xerox/Done detected." puts $lfp "Implication is that scp failed." close $lfp exit } set lastxfer [file mtime /u/de/data/xerox/Done] # if {$lastxfer > $lastup} { puts $lfp "Recent Transfer [clock format $lastxfer]" puts $lfp "Older Update [clock format $lastup]" puts $lfp "IMPOSSIBLE in normal operation" } else { puts $lfp "Recent Update [clock format $lastup]" puts $lfp "Older Transfer [clock format $lastxfer]" puts $lfp "Time to count the spoons." } # set flist [glob -nocomplain *.dat] set Ignore [list Mirrors MaskSlit SlitMap People Vendor FilterPerf Respondents SurveyAnswers fassists data_dict sw_issues foobar ] set trouble "" foreach f [lsort $flist] { set fn [file tail $f] set tn [file rootname $fn] if {[lcontain $Ignore $tn]} {continue} set res [exec wc $fn] lassign $res lines words chars set sqlcmd "select count(*) from $tn" set sqt $tn set err [catch {doSQL 1} res] if {$err} { puts $lfp "ERROR accessing table $tn:\n$res" continue } set rec [sybNext 1] if {$rec < $lines} { lappend trouble "TABLE $tn s/b $lines is $rec records" } } # if {$trouble != ""} { set uniq [clock seconds] set tmf /tmp/UpdMail.$uniq write_file $tmf "[join $trouble \n]" system "/usr/ucb/Mail -s UPDATE_TROUBLE de@ucolick.org < $tmf" puts $lfp "[join $trouble \n]" puts $lfp "Sent mail to de." } else { puts $lfp "all files line cts match table rec counts" } # close $lfp #