#!/bin/sh
#
# /secure/weekly
# root crontab weekly entries
#
# History:
#   26.11.00 sb Add /var/adm/messages
#   22.02.01 sb Wait 30 secs between pruning (for syslog to restart)
#               Send null post pruning command for non-syslog logs.
 
os=`uname -s`
if [ "$os" = "SunOS" ] ; then
  #grep="/usr/xpg4/bin/grep";
  grep="grep -c"

elif [ "$os" = "Linux" ] ; then
  # Suse Linux:
  grep="/usr/bin/grep -q";
fi

## Is this a loghost?
grep `uname -n` /etc/hosts | $grep loghost >/dev/null
if [ "$?" = "0" ] ; then
  #date
  #echo "loghost, so prune syslogs"

  ## Analyse logs/logins before log pruning:
  if [ -f /secure/logcheck/logcheck.sh ] ; then
    /secure/logcheck/logcheck.sh;
  fi
  
  ## Prune syslog logs weekly, keeping the last 6 months or so:
  ## wait for 30 secs between logs, to give syslog time to restart
  /secure/rotate_log -n 40 alertlog   | tee /var/log/weekly.out
  sleep 30
  /secure/rotate_log -n 40 authlog    | tee /var/log/weekly.out  
  sleep 30
  /secure/rotate_log -n 20 cronlog    | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 40 daemonlog  | tee /var/log/weekly.out
  sleep 30
  /secure/rotate_log -n 40 kernlog    | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 40 local0log  | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 40 local2log  | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 40 local5log  | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 20 newslog    | tee /var/log/weekly.out 
  sleep 30
  /secure/rotate_log -n 40 userlog    | tee /var/log/weekly.out
  sleep 30
  /secure/rotate_log -n 10 lprlog     | tee /var/log/weekly.out
  sleep 30
  /secure/rotate_log -n 20 maillog    | tee /var/log/weekly.out
#else
#  echo "not a loghost, so do not prune syslogs"
fi

if [ "$os" = "SunOS" ] ; then
  ## General server & workstation Solaris 2.x logs:
  /secure/rotate_log -L /var/adm -n 52 messages  | tee /var/log/weekly.out
  ## these don't concern syslog, so we pass a null command to be executed
  ## after log pruning (by default syslog is restarted)
  /secure/rotate_log -L /var/adm -n 52 loginlog -E ' ' | tee /var/log/weekly.out
  /secure/rotate_log -L /var/adm -c -m 640 -M 440 -c -s -n 52 sulog    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/adm -c -m 640 -M 440 -c -s -n 4 vold.log  | tee /var/log/weekly.out

  /secure/rotate_cron    | tee /var/log/weekly.out

elif [ "$os" = "Linux" ] ; then
  ## Suse Linux:
  /secure/rotate_log -L /var/log -n 30 localmessages    | tee /var/log/weekly.out
#  /secure/rotate_log -L /var/log -n 30 firewall    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 messages    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 mail    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 warn    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 faillog    | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 XFree86.0.log  | tee /var/log/weekly.out
  /secure/rotate_log -L /var/log -n 30 rsyncd.log  | tee /var/log/weekly.out
fi

#date 
#echo "$0 done"
