🔒 Repository is read-only – file editing is disabled.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
From 96287919c311a17ff3c5e3d4b5ebb4507a8ddadf Mon Sep 17 00:00:00 2001
From: Gerlof Langeveld <gerlof.langeveld@atoptool.nl>
Date: Sat, 9 Jun 2018 12:06:49 +0200
Subject: [PATCH] Modify default values in atop.daily script Add possibility to
override all necessary default values in the atop.daily script, i.e. variable
LOGOPTS, LOGINTERVAL and LOGGENERATIONS.
---
atop.daily | 47 ++++++++++++++++++++++++++++++++---------------
man/atop.1 | 51 ++++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 76 insertions(+), 22 deletions(-)
diff --git a/atop.daily b/atop.daily
index 3539e62..57a9507 100755
--- a/atop.daily
+++ b/atop.daily
@@ -1,21 +1,42 @@
#!/bin/bash
+LOGOPTS="-R" # default options
+LOGINTERVAL=600 # default interval in seconds
+LOGGENERATIONS=28 # default number of days
+
+# allow administrator to overrule the variables
+# defined above
+#
+DEFAULTSFILE=/etc/default/atop # possibility to overrule vars
+
+if [ -e "$DEFAULTSFILE" ]
+then
+ . "$DEFAULTSFILE"
+
+ # validate overruled variables
+ # (LOGOPTS and LOGINTERVAL are implicitly by atop)
+ #
+ case "$LOGGENERATIONS" in
+ ''|*[!0-9]*)
+ echo non-numerical value for LOGGENERATIONS >&2
+ exit 1;;
+ esac
+fi
+
CURDAY=`date +%Y%m%d`
LOGPATH=/var/log/atop
BINPATH=/usr/bin
PIDFILE=/var/run/atop.pid
-DEFAULTSFILE=/etc/default/atop
-INTERVAL=600 # interval 10 minutes
# verify if atop still runs for daily logging
#
-if [ -e $PIDFILE ] && ps -p `cat $PIDFILE` | grep 'atop$' > /dev/null
+if [ -e "$PIDFILE" ] && ps -p `cat "$PIDFILE"` | grep 'atop$' > /dev/null
then
- kill -USR2 `cat $PIDFILE` # final sample and terminate
+ kill -USR2 `cat "$PIDFILE"` # final sample and terminate
CNT=0
- while ps -p `cat $PIDFILE` > /dev/null
+ while ps -p `cat "$PIDFILE"` > /dev/null
do
let CNT+=1
@@ -27,21 +48,17 @@ then
sleep 1
done
- rm $PIDFILE
-fi
-
-ATOPOPTS="-R"
-if [ -e "$DEFAULTSFILE" ]; then
- . "$DEFAULTSFILE"
+ rm "$PIDFILE"
fi
-# delete logfiles older than four weeks
+# delete logfiles older than N days (configurable)
# start a child shell that activates another child shell in
# the background to avoid a zombie
#
-( (sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \;)& )
+( (sleep 3; find "$LOGPATH" -name 'atop_*' -mtime +"$LOGGENERATIONS" -exec rm {} \;)& )
-# activate atop with interval of 10 minutes, replacing the current shell
+# activate atop with an interval of S seconds (configurable),
+# replacing the current shell
#
echo $$ > $PIDFILE
-exec $BINPATH/atop $ATOPOPTS -w $LOGPATH/atop_$CURDAY $INTERVAL > $LOGPATH/daily.log 2>&1
+exec $BINPATH/atop $LOGOPTS -w "$LOGPATH"/atop_"$CURDAY" "$LOGINTERVAL" > "$LOGPATH/daily.log" 2>&1
diff --git a/man/atop.1 b/man/atop.1
index 17ad69f..7866e49 100644
--- a/man/atop.1
+++ b/man/atop.1
@@ -1,4 +1,4 @@
-.TH ATOP 1 "March 2017" "Linux"
+.TH ATOP 1 "June 2018" "Linux"
.SH NAME
.B atop
- Advanced System & Process Monitor
@@ -859,11 +859,29 @@ This scripts takes care that
.B atop
is activated every day at midnight to write compressed binary data to the file
.BI /var/log/atop/atop_ YYYYMMDD
-with an interval of 10 minutes.
-.br
-Furthermore the script removes all raw files which are older than four weeks.
-.br
-The script is activated via the
+with an interval of 10 minutes by default. The
+.B -R
+flag is passed by default to gather information about the proportional
+set size of every process.
+.br
+Furthermore the script removes all raw files which are by default
+older than 28 days.
+.br
+The mentioned default values can be overruled by creating the file
+.B /etc/default/atop
+that might contain other values for
+.B LOGOPTS
+(by default the
+.B -R
+flag),
+.B LOGINTERVAL
+(in seconds, by default 600), and
+.B LOGGENERATIONS
+(in days, by default 28).
+.PP
+The
+.B atop.daily
+script is activated via the
.B cron
daemon using the file
.I /etc/cron.d/atop
@@ -2092,6 +2110,25 @@ Configuration file containing personal default values.
See related man-page.
.PP
.TP 5
+.B /etc/default/atop
+Configuration file to overrule the settings of
+.I atop
+that runs in the background to create the daily logfile.
+This file is not created or overwritten when
+.I atop
+is installed, so it has to be created manually to override
+the default settings.
+The default settings are:
+.TP 8
+\
+.br
+LOGOPTS="-R"
+.br
+LOGINTERVAL=600
+.br
+LOGGENERATIONS=28
+.PP
+.TP 5
.BI /var/log/atop/atop_ YYYYMMDD
Raw file, where
.I YYYYMMDD
@@ -2123,7 +2160,7 @@ after reading the standard process accounting records.
.B netatopd(8),
.B logrotate(8)
.br
-.B http://www.atoptool.nl
+.B https://www.atoptool.nl
.SH AUTHOR
Gerlof Langeveld (gerlof.langeveld@atoptool.nl)
.br