Removed /usr/local from CDPATH
[clearscm.git] / clients / HP / roll_logs
1 #!/bin/ksh
2 ################################################################################
3 #
4 # File:         roll_logs
5 # Description:  Rolls log files
6 # Author:       Andrew@DeFaria.com
7 # Created:      Thu Dec  9 10:05:09 PST 1999
8 # Modified:
9 # Language:     Korn Shell
10 #
11 # (c) Copyright 2001, Andrew@DeFaria.com, all rights reserved
12 #
13 ################################################################################
14 # Set me to command name
15 me=$(basename $0)
16
17 # Set adm_base
18 adm_base=${adm_base:-$HOME/adm}
19
20 # Set adm_fpath
21 adm_fpath=${adm_fpath:-$adm_base/functions}
22
23 # Source functions
24 . $adm_fpath/common
25 . $adm_fpath/logs
26
27 function usage {
28   if [ "_$1" != "_" ]; then
29     display "$1"
30     display
31   fi
32   display "Usage: $me -[da|aily] | -[w|eekly]"
33   exit 1
34 } # usage
35
36 # Check for execution by root
37 if is_not_root; then
38   error "This script must be run as root" 1
39 fi
40
41 type=
42 while [ $# -ge 1 ]; do
43   case "$1" in
44     -usage)
45       usage
46     ;;
47
48     -v|-verbose)
49       verbose=yes
50     ;;
51
52     -d|-debug)
53       debug=yes
54     ;;
55
56     -da|-daily)
57       type=daily
58       ;;
59
60     -w|-weekly)
61       type=weekly
62       ;;
63
64     *)
65       usage "Unrecognized parameter $1"
66     ;;
67   esac
68   shift
69 done
70
71 if [ "_$type" = "_" ]; then
72   usage "Must specify -daily or -weekly"
73 fi
74
75 #Directory      logfile         backuplog               what
76 dailylogs="\
77 /var/adm        automount.log   autolog.week            automount\n\
78 /var/adm        nettl.LOG00     nettl.week              nettracelog\n\
79 /var/adm        ninstall.log    nlog.week               ninstall\n\
80 /var/adm        ptydaemonlog    ptylog.week             ptydaemon\n\
81 /var/adm        rpc.lockd.log   rpc.lockd.week          rpc.lockd\n\
82 /var/adm        rpc.statd.log   rpc.statd.week          rpc.statd\n\
83 /var/adm        vtdaemonlog     vtlog.week              vtdaemon\n\
84 /var/adm/cron   log             log.week                cron\n\
85 /var/adm/lp     log             log.week                lp\n\
86 /var/adm/syslog syslog.log      syslog.week             syslogd"
87
88 weeklylogs="\
89 /var/adm        autolog.week    autolog.oldweek         automount\n\
90 /var/adm        nettl.week      nettl.oldweek           nettracelog\n\
91 /var/adm        nlog.week       nlog.oldweek            ninstall\n\
92 /var/adm        ptylog.week     ptylog.oldweek          ptydaemon\n\
93 /var/adm        rpc.lockd.week  rpc.lockd.oldweek       rpc.lockd\n\
94 /var/adm        rpc.statd.week  rpc.statd.oldweek       rpc.statd\n\
95 /var/adm        vtlog.week      vtlog.oldweek           vtdaemon\n\
96 /var/adm/cron   log.week        log.oldweek             cron\n\
97 /var/adm/lp     log.week        log.oldweek             lp\n\
98 /var/adm/syslog syslog.week     syslog.oldweek          syslogd"
99
100 if [ "$type" = "daily" ]; then
101   verbose "Daily roll_logs"
102   logfiles="$dailylogs"
103 else
104   verbose "Weekly roll_logs"
105   logfiles="$weeklylogs"
106 fi
107
108 print "$logfiles" | while read dir logfile backup_logfile what; do
109   verbose "Rolling ($what) logfile $logfile -> $backup_logfile..."
110   if [ "$type" = "weekly" ]; then
111     # Clear out oldweek file first
112     rm -f $backup_logfile
113   fi
114   roll_log $dir $logfile $backup_logfile $what
115 done