/contrib/ntp/scripts/stats/summary.sh

https://bitbucket.org/freebsd/freebsd-head/ · Shell · 88 lines · 63 code · 5 blank · 20 comment · 19 complexity · fc91591a2340c01cc9142de4b5eae5e7 MD5 · raw file

  1. #!/bin/sh
  2. #
  3. # Script to summarize ipeerstats, loopstats and clockstats files
  4. #
  5. # This script can be run from a cron job once per day, week or month. It
  6. # runs the file-specific summary script and appends the summary data to
  7. # designated files.
  8. #
  9. DATE=`date +20%y%m%d`
  10. S=/usr/local/bin/S
  11. SIN=S.in
  12. SOUT=S.out
  13. LOOP=loop_summary
  14. PEER=peer_summary
  15. CLOCK=clock_summary
  16. rm -f $SIN $SOUT
  17. #
  18. # Summarize loopstats files
  19. #
  20. for f in loopstats.[12][0-9][0-9][0-9][0-1][0-9][0-3][0-9]; do
  21. d=`echo $f | cut -f2 -d.`
  22. if [ -f $f ] && [ $DATE != $d ]; then
  23. echo " " >>$LOOP
  24. echo $f >>$LOOP
  25. awk -f loop.awk $f >>$LOOP
  26. if [ -f $S ]; then
  27. echo "file1<-"\"${f}\" >>$SIN
  28. echo "source("\""loop.S"\"")" >>$SIN
  29. echo "unix("\""rm ${f}"\"")" >>$SIN
  30. else
  31. rm -f $f
  32. fi
  33. fi
  34. done
  35. #
  36. # Summarize peerstats files
  37. #
  38. for f in peerstats.199[4-9][0-1][0-9][0-3][0-9]; do
  39. d=`echo $f | cut -f2 -d.`
  40. if [ -f $f ] && [ $DATE != $d ]; then
  41. echo " " >>$PEER
  42. echo $f >>$PEER
  43. awk -f peer.awk $f >>$PEER
  44. rm -f $f
  45. fi
  46. done
  47. #
  48. # Summarize clockstats files
  49. #
  50. for f in clockstats.199[4-9][0-1][0-9][0-3][0-9]; do
  51. d=`echo $f | cut -f2 -d.`
  52. if [ -f $f ] && [ $DATE != $d ]; then
  53. echo " " >>$CLOCK
  54. echo $f >>$CLOCK
  55. awk -f clock.awk $f >>$CLOCK
  56. if [ -f /dev/gps[0-9] ]; then
  57. awk -f itf.awk $f >itf.$d
  58. awk -f etf.awk $f >etf.$d
  59. awk -f ensemble.awk $f >ensemble.$d
  60. awk -f tdata.awk $f >tdata.$d
  61. fi
  62. rm -f $f
  63. fi
  64. done
  65. #
  66. # Process clockstat files with S and generate PostScript plots
  67. #
  68. for f in itf etf ensemble tdata; do
  69. for d in ${f}.199[4-9][0-1][0-9][0-3][0-9]; do
  70. if [ -f $d ]; then
  71. if [ -f $S ]; then
  72. echo "file1<-"\"${d}\" >>$SIN
  73. echo "source("\"${f}.S\"")" >>$SIN
  74. echo "unix("\""rm ${d}"\"")" >>$SIN
  75. else
  76. rm -f $d
  77. fi
  78. fi
  79. done
  80. done
  81. if [ -f $SIN ]; then
  82. $S BATCH $SIN $SOUT
  83. fi