home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume3 / core_notice < prev    next >
Internet Message Format  |  1989-02-03  |  3KB

  1. Path: xanth!mcnc!uvaarpa!umd5!brl-adm!cmcl2!nrl-cmf!ames!necntc!ncoast!allbery
  2. From: rsalz@pineapple.bbn.com
  3. Newsgroups: comp.sources.misc
  4. Subject: v03i013: Mail users about old files
  5. Message-ID: <8805091314.AA24731@fig.bbn.com>
  6. Date: 9 May 88 13:14:20 GMT
  7. Sender: allbery@ncoast.UUCP
  8. Reply-To: rsalz@pineapple.bbn.com
  9. Lines: 102
  10. Approved: allbery@ncoast.UUCP
  11.  
  12. comp.sources.misc: Volume 3, Issue 13
  13. Submitted-By: "A. Nonymous" <rsalz@pineapple.bbn.com>
  14. Archive-Name: core_notice
  15.  
  16. We run this script weekly.
  17. It will need minor tweaking for other sites, but it's not really
  18. BSD or USG dependent.
  19.  
  20.     /r$
  21.  
  22.  
  23. #To unpack, delete all lines before this and feed to /bin/sh
  24. echo core_notice 1>&2
  25. sed -e 's/^X//' >core_notice <<'END'
  26. X#! /bin/sh
  27. X##
  28. X##  Script to find old core, etc., files and send mail to their owners.
  29. X##  It assumes your find has the "-xdev" option to not cross mount
  30. X##  points.  It would like to use System V "xargs" command, but can
  31. X##  use the BSD "fmt" command as a hack, instead.  Also check the mail
  32. X##  commands, below.
  33. X##
  34. X##  The file core_errs will contain any errors; core_ls will be the full
  35. X##  list of old and bogus files.
  36. X##
  37. X
  38. X##  Setup.
  39. Xcd /usr/adm
  40. XPATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin
  41. XHOST=`hostname`
  42. Xrm -f core_ls core_errs core_unknown
  43. X
  44. X##  If first argument is "-i" then we're interactive.
  45. Xif [ "x$1" = "x-i" ] ; then
  46. X    shift
  47. Xelse
  48. X    exec 2>core_errs
  49. Xfi
  50. X
  51. X##  Optional next argument is how old files should be before we complain.
  52. XAGE=${1-5}
  53. X
  54. X##  Cute trick to get list of directly-mounted filesystems, only.
  55. XFILESYSTEMS=`df | awk '$1 ~ /^\/dev\// {print $6}'`
  56. X
  57. X##  You might want to tweak the predicates in here.
  58. Xfind ${FILESYSTEMS} \( \
  59. X        -name core -o -name a.out \
  60. X        -o -name 'drft.[0-9]*' \
  61. X        -name 'msg[0-3][0-9][JFMASOND]*' \
  62. X        -o -name ',*' \
  63. X        -o -name '#*' -o -name '.#*' \
  64. X        -o -name '*~' -o -name '.*~' \
  65. X        -o -name '.tpen*' \
  66. X    \) -a -xdev -a -mtime +${AGE} -print \
  67. X    | fmt -200 | sed -e 's@^@/bin/ls -l @' | sh >core_ls
  68. X#  If you have xargs, it is more efficient.
  69. X#   | xargs /bin/ls -l >core_ls
  70. X
  71. X##  Unlikely, but maybe we didn't find anything.
  72. Xif [ ! -s core_ls ]; then
  73. X    exec rm -f core_ls
  74. Xfi
  75. X
  76. X##  Assuming a standard "ls", third field is the users.  Loop over list
  77. X##  of all badguys.  The funky grep commands ignore filenames; be careful
  78. X##  if your "ls -l" uses tabs.
  79. Xfor c in `awk '{print $3}' <core_ls | sort -u` ; do
  80. X    case $c in
  81. X    _*|[0-9]*)
  82. X    grep " $c " core_ls >>core_unknown
  83. X    ;;
  84. X    *)  
  85. X    (
  86. X        echo "You have the following old files on the ${HOST}:"
  87. X        grep " $c " core_ls
  88. X        echo "which are greater than ${AGE} days old."
  89. X        echo ''
  90. X        echo 'If you are finished with them, it would be nice to remove'
  91. X        echo 'them, freeing up the disk space.'
  92. X        echo ''
  93. X        echo 'Thanks,'
  94. X        echo ''
  95. X        echo "The Filesystem on ${HOST}"
  96. X        echo ''
  97. X    ) | \
  98. X        Mail -s "Old files on ${HOST}" $c
  99. X# We use sendmail; MMDF is probably this:
  100. X#        v6mail -to $c -subj "Old files on ${HOST}"
  101. X    ;;
  102. X    esac
  103. Xdone
  104. Xif [ -s core_unknown ] ; then
  105. X    (
  106. X    echo "Found unknown old files on ${HOST}:"
  107. X    cat core_unknown
  108. X    ) | \
  109. X    Mail -s "${HOST}: No owner for these ancient files." root
  110. X# We use sendmail; MMDF is probably this:
  111. X#    v6mail -to root -subj "${HOST}: No owner for these ancient files."
  112. Xfi
  113. END
  114.