|
Lines 34-191
Link Here
|
| 34 |
# LANG is set to UTF-8. |
34 |
# LANG is set to UTF-8. |
| 35 |
export LANG=C |
35 |
export LANG=C |
| 36 |
|
36 |
|
|
|
37 |
|
| 38 |
die () { echo "$*" >&2 ; exit 2 ; } |
| 37 |
# Name of config file |
39 |
# Name of config file |
| 38 |
configfile="/etc/univention/univention-maintenance.conf" |
40 |
configfile="/etc/univention/univention-maintenance.conf" |
| 39 |
|
41 |
|
| 40 |
# Search config file and check values |
42 |
# Search config file and check values |
| 41 |
test -e $configfile || { |
43 |
test -e "$configfile" || |
| 42 |
echo |
44 |
die "ERROR: Config file \"$configfile\" was not found!" |
| 43 |
echo "ERROR: Config file \"$configfile\" was not found!" |
|
|
| 44 |
echo |
| 45 |
exit 2; |
| 46 |
} |
| 47 |
|
45 |
|
| 48 |
. $configfile |
46 |
. "$configfile" |
| 49 |
|
47 |
|
| 50 |
test -z "$mrtg_config" && touch "$mrtg_config" 2>/dev/null && { |
48 |
test -n "$mrtg_config" && |
| 51 |
echo |
49 |
touch "$mrtg_config" 2>/dev/null || |
| 52 |
echo "ERROR: \"\$mrtg_config\" is not valid." |
50 |
die "ERROR: \"\$mrtg_config\" is not valid." |
| 53 |
echo |
51 |
test -n "$wwwdir" && |
| 54 |
exit 2; |
52 |
mkdir -p "$wwwdir" 2>/dev/null || |
| 55 |
} |
53 |
die "ERROR: Missing \"\$wwwdir\" in $configfile" |
| 56 |
test -z "$wwwdir" && mkdir -p "$wwwdir" 2>/dev/null && { |
54 |
test -n $indexhtm || |
| 57 |
echo |
55 |
die "ERROR: Missing \"\$indexhtm\" in $configfile" |
| 58 |
echo "ERROR: Missing \"\$wwwdir\" in $configfile" |
|
|
| 59 |
echo |
| 60 |
exit 2; |
| 61 |
} |
| 62 |
test -z $indexhtm && { |
| 63 |
echo |
| 64 |
echo "ERROR: Missing \"\$indexhtm\" in $configfile" |
| 65 |
echo |
| 66 |
exit 2; |
| 67 |
} |
| 68 |
|
56 |
|
| 69 |
# Delete old mrtg files |
57 |
# Delete old mrtg files |
| 70 |
rm -f $wwwdir/ucs_*.png $wwwdir/ucs_*.txt |
58 |
rm -f "$wwwdir"/ucs_*.png "$wwwdir"/ucs_*.txt |
| 71 |
rm -f $wwwdir/uds_*.png $wwwdir/uds_*.txt |
59 |
rm -f "$wwwdir"/uds_*.png "$wwwdir"/uds_*.txt |
| 72 |
for i in $(ls $wwwdir/uds_*.log 2>/dev/null); do |
60 |
for uds in "$wwwdir"/uds_*.log |
| 73 |
new=$(echo $i | sed 's/\/uds/\/ucs/') |
61 |
do |
| 74 |
mv $i $new |
62 |
mv "$uds" "$wwwdir/ucs_${uds#$wwwdir/uds_}" |
| 75 |
done |
63 |
done |
| 76 |
|
64 |
|
| 77 |
# memory |
65 |
# memory |
| 78 |
freemem=$(more /proc/meminfo | grep ^MemFree: | awk {'print $2'}) |
66 |
freemem=$(awk '/^MemFree:/{print $2}' </proc/meminfo) |
| 79 |
buffers=$(more /proc/meminfo | grep ^Buffers: | awk {'print $2'}) |
67 |
buffers=$(awk '/^Buffers:/{print $2}' </proc/meminfo) |
| 80 |
cached=$(more /proc/meminfo | grep ^Cached: | awk {'print $2'}) |
68 |
cached=$(awk '/^Cached:/{print $2}' </proc/meminfo) |
| 81 |
memtotal=$(more /proc/meminfo | grep ^MemTotal: | awk {'print $2'}) |
69 |
memtotal=$(awk '/^MemTotal:/{print $2}' </proc/meminfo) |
| 82 |
free=$(($buffers + $cached + $freemem)) |
70 |
free=$(($buffers + $cached + $freemem)) |
| 83 |
memused=$(($memtotal - $free)) |
71 |
memused=$(($memtotal - $free)) |
| 84 |
prctmem=$((100 * $memused / $memtotal)) |
72 |
prctmem=$((100 * $memused / $memtotal)) |
| 85 |
mrtgname="ucs_2mem" |
73 |
mrtgname="ucs_2mem" |
| 86 |
echo "WorkDir: $wwwdir" > $mrtg_config |
74 |
( |
| 87 |
echo "Language: german" >> $mrtg_config |
75 |
echo "WorkDir: $wwwdir" |
| 88 |
echo "Interval: 15" >> $mrtg_config |
76 |
echo "Language: german" |
| 89 |
echo "Target[$mrtgname]: \`echo -e \"$prctmem\n0\nunused\nunused\"\`" >> $mrtg_config |
77 |
echo "Interval: 15" |
| 90 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" >> $mrtg_config |
78 |
echo "Target[$mrtgname]: \`echo -e \"$prctmem\n0\nunused\nunused\"\`" |
| 91 |
echo "Unscaled[$mrtgname]: dwmy" >> $mrtg_config |
79 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" |
| 92 |
echo "MaxBytes[$mrtgname]: 100" >> $mrtg_config |
80 |
echo "Unscaled[$mrtgname]: dwmy" |
| 93 |
echo "AbsMax[$mrtgname]: 99999" >> $mrtg_config |
81 |
echo "MaxBytes[$mrtgname]: 100" |
| 94 |
echo "Title[$mrtgname]: " >> $mrtg_config |
82 |
echo "AbsMax[$mrtgname]: 99999" |
| 95 |
echo "Ylegend[$mrtgname]: % " >> $mrtg_config |
83 |
echo "Title[$mrtgname]: " |
| 96 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" >> $mrtg_config |
84 |
echo "Ylegend[$mrtgname]: %" |
| 97 |
echo "Background[$mrtgname]: #ffffff" >> $mrtg_config |
85 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" |
| 98 |
echo "PageTop[$mrtgname]: <H1>Speicherauslastung</H1>" >> $mrtg_config |
86 |
echo "Background[$mrtgname]: #ffffff" |
|
|
87 |
echo "PageTop[$mrtgname]: <H1>Speicherauslastung</H1>" |
| 88 |
) >"$mrtg_config" |
| 99 |
mrtg "$mrtg_config" 2>/dev/null |
89 |
mrtg "$mrtg_config" 2>/dev/null |
| 100 |
rm -f $mrtg_config $wwwdir/ucs_*.htm* |
90 |
rm -f "$mrtg_config" "$wwwdir"/ucs_*.htm* |
| 101 |
echo "Auslastung des Hauptspeichers: $prctmem%" >$wwwdir/$mrtgname.txt |
91 |
echo "Auslastung des Hauptspeichers: $prctmem%" >"$wwwdir/$mrtgname.txt" |
| 102 |
|
92 |
|
| 103 |
# swap |
93 |
# swap |
| 104 |
swaptotal=$(more /proc/meminfo | grep ^SwapTotal: | awk {'print $2'}) |
94 |
swaptotal=$(awk '/^SwapTotal:/{print $2}' </proc/meminfo) |
| 105 |
swapfree=$(more /proc/meminfo | grep ^SwapFree: | awk {'print $2'}) |
95 |
swapfree=$(awk '/^SwapFree:/{print $2}' </proc/meminfo) |
| 106 |
swapused=$(($swaptotal - $swapfree)) |
96 |
swapused=$(($swaptotal - $swapfree)) |
| 107 |
if [ "$swaptotal" = "0" ]; then |
97 |
if [ "$swaptotal" = "0" ]; then |
| 108 |
prctswap=0 |
98 |
prctswap=0 |
| 109 |
else |
99 |
else |
| 110 |
prctswap=$((100 * $swapused / $swaptotal)) |
100 |
prctswap=$((100 * $swapused / $swaptotal)) |
| 111 |
fi |
101 |
fi |
| 112 |
mrtgname="ucs_3swap" |
102 |
mrtgname="ucs_3swap" |
| 113 |
echo "WorkDir: $wwwdir" > $mrtg_config |
103 |
( |
| 114 |
echo "Language: german" >> $mrtg_config |
104 |
echo "WorkDir: $wwwdir" |
| 115 |
echo "Interval: 15" >> $mrtg_config |
105 |
echo "Language: german" |
| 116 |
echo "Target[$mrtgname]: \`echo -e \"$prctswap\n0\nunused\nunused\"\`" >> $mrtg_config |
106 |
echo "Interval: 15" |
| 117 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" >> $mrtg_config |
107 |
echo "Target[$mrtgname]: \`echo -e \"$prctswap\n0\nunused\nunused\"\`" |
| 118 |
echo "Unscaled[$mrtgname]: dwmy" >> $mrtg_config |
108 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" |
| 119 |
echo "MaxBytes[$mrtgname]: 100" >> $mrtg_config |
109 |
echo "Unscaled[$mrtgname]: dwmy" |
| 120 |
echo "AbsMax[$mrtgname]: 99999" >> $mrtg_config |
110 |
echo "MaxBytes[$mrtgname]: 100" |
| 121 |
echo "Title[$mrtgname]: " >> $mrtg_config |
111 |
echo "AbsMax[$mrtgname]: 99999" |
| 122 |
echo "Ylegend[$mrtgname]: %" >> $mrtg_config |
112 |
echo "Title[$mrtgname]: " |
| 123 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" >> $mrtg_config |
113 |
echo "Ylegend[$mrtgname]: %" |
| 124 |
echo "Background[$mrtgname]: #ffffff" >> $mrtg_config |
114 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" |
| 125 |
echo "PageTop[$mrtgname]: <H1>Swapauslastung</H1>" >> $mrtg_config |
115 |
echo "Background[$mrtgname]: #ffffff" |
|
|
116 |
echo "PageTop[$mrtgname]: <H1>Swapauslastung</H1>" |
| 117 |
) >"$mrtg_config" |
| 126 |
mrtg "$mrtg_config" 2>/dev/null |
118 |
mrtg "$mrtg_config" 2>/dev/null |
| 127 |
rm -f $mrtg_config $wwwdir/ucs_*.htm* |
119 |
rm -f "$mrtg_config" "$wwwdir"/ucs_*.htm* |
| 128 |
echo "Auslastung des Auslagerungsspeicher: $prctswap%" >$wwwdir/$mrtgname.txt |
120 |
echo "Auslastung des Auslagerungsspeicher: $prctswap%" >"$wwwdir/$mrtgname.txt" |
| 129 |
|
121 |
|
| 130 |
# CPU usage of last 15 minutes |
122 |
# CPU usage of last 15 minutes |
| 131 |
loadavg="`echo \`cat /proc/loadavg |awk '{print $3}'\`*100 | bc | cut -f1 -d"."`" |
123 |
loadavg=$(awk '{print int($3*100)}' </proc/loadavg) |
| 132 |
mrtgname="ucs_0load" |
124 |
mrtgname="ucs_0load" |
| 133 |
echo "WorkDir: $wwwdir" > $mrtg_config |
125 |
( |
| 134 |
echo "Language: german" >> $mrtg_config |
126 |
echo "WorkDir: $wwwdir" |
| 135 |
echo "Interval: 15" >> $mrtg_config |
127 |
echo "Language: german" |
| 136 |
echo "Target[$mrtgname]: \`echo -e \"$loadavg\n0\nunused\nunused\"\`" >> $mrtg_config |
128 |
echo "Interval: 15" |
| 137 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" >> $mrtg_config |
129 |
echo "Target[$mrtgname]: \`echo -e \"$loadavg\n0\nunused\nunused\"\`" |
| 138 |
echo "Unscaled[$mrtgname]: dwmy" >> $mrtg_config |
130 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" |
| 139 |
echo "MaxBytes[$mrtgname]: 100" >> $mrtg_config |
131 |
echo "Unscaled[$mrtgname]: dwmy" |
| 140 |
echo "AbsMax[$mrtgname]: 99999" >> $mrtg_config |
132 |
echo "MaxBytes[$mrtgname]: 100" |
| 141 |
echo "Title[$mrtgname]: " >> $mrtg_config |
133 |
echo "AbsMax[$mrtgname]: 99999" |
| 142 |
echo "Ylegend[$mrtgname]: %" >> $mrtg_config |
134 |
echo "Title[$mrtgname]: " |
| 143 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" >> $mrtg_config |
135 |
echo "Ylegend[$mrtgname]: %" |
| 144 |
echo "Background[$mrtgname]: #ffffff" >> $mrtg_config |
136 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" |
| 145 |
echo "PageTop[$mrtgname]: <H1>Systemlast</H1>" >> $mrtg_config |
137 |
echo "Background[$mrtgname]: #ffffff" |
|
|
138 |
echo "PageTop[$mrtgname]: <H1>Systemlast</H1>" |
| 139 |
) >"$mrtg_config" |
| 146 |
mrtg "$mrtg_config" 2>/dev/null |
140 |
mrtg "$mrtg_config" 2>/dev/null |
| 147 |
rm -f $mrtg_config $wwwdir/ucs_*.htm* |
141 |
rm -f "$mrtg_config" "$wwwdir"/ucs_*.htm* |
| 148 |
echo "Systemlast: $loadavg%" >$wwwdir/$mrtgname.txt |
142 |
echo "Systemlast: $loadavg%" >"$wwwdir/$mrtgname.txt" |
| 149 |
|
143 |
|
| 150 |
# Session count |
144 |
# Session count |
| 151 |
nrsessions="`ps -C univention-sess | grep -ic univention-sess`" |
145 |
nrsessions=$(pgrep -c univention-sess) |
| 152 |
mrtgname="ucs_1sessions" |
146 |
mrtgname="ucs_1sessions" |
| 153 |
echo "WorkDir: $wwwdir" > $mrtg_config |
147 |
( |
| 154 |
echo "Language: german" >> $mrtg_config |
148 |
echo "WorkDir: $wwwdir" |
| 155 |
echo "Interval: 15" >> $mrtg_config |
149 |
echo "Language: german" |
| 156 |
echo "Target[$mrtgname]: \`echo -e \"$nrsessions\n0\nunused\nunused\"\`" >> $mrtg_config |
150 |
echo "Interval: 15" |
| 157 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" >> $mrtg_config |
151 |
echo "Target[$mrtgname]: \`echo -e \"$nrsessions\n0\nunused\nunused\"\`" |
| 158 |
echo "Unscaled[$mrtgname]: dwmy" >> $mrtg_config |
152 |
echo "Options[$mrtgname]: growright,noo,gauge,nobanner,noborder,nolegend,noinfo" |
| 159 |
echo "MaxBytes[$mrtgname]: 10" >> $mrtg_config |
153 |
echo "Unscaled[$mrtgname]: dwmy" |
| 160 |
echo "AbsMax[$mrtgname]: 99999" >> $mrtg_config |
154 |
echo "MaxBytes[$mrtgname]: 10" |
| 161 |
echo "Title[$mrtgname]: " >> $mrtg_config |
155 |
echo "AbsMax[$mrtgname]: 99999" |
| 162 |
echo "Ylegend[$mrtgname]: Total" >> $mrtg_config |
156 |
echo "Title[$mrtgname]: " |
| 163 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" >> $mrtg_config |
157 |
echo "Ylegend[$mrtgname]: Total" |
| 164 |
echo "Background[$mrtgname]: #ffffff" >> $mrtg_config |
158 |
echo "Colours[$mrtgname]: blau#6666ff,unused#000000,unused#000000,unused#000000" |
| 165 |
echo "PageTop[$mrtgname]: <H1>Sessions</H1>" >> $mrtg_config |
159 |
echo "Background[$mrtgname]: #ffffff" |
|
|
160 |
echo "PageTop[$mrtgname]: <H1>Sessions</H1>" |
| 161 |
) >"$mrtg_config" |
| 166 |
mrtg "$mrtg_config" 2>/dev/null |
162 |
mrtg "$mrtg_config" 2>/dev/null |
| 167 |
rm -f $mrtg_config $wwwdir/ucs_*.htm* |
163 |
rm -f "$mrtg_config" "$wwwdir"/ucs_*.htm* |
| 168 |
echo "Session(s): $nrsessions" >$wwwdir/$mrtgname.txt |
164 |
echo "Session(s): $nrsessions" >"$wwwdir/$mrtgname.txt" |
| 169 |
|
165 |
|
| 170 |
# Write HTML file |
166 |
# Write HTML file |
| 171 |
cat <<__EOT__ >$wwwdir/$indexhtm |
167 |
( |
| 172 |
<HTML> |
168 |
echo '<html>' |
| 173 |
<HEAD> |
169 |
echo '<head>' |
| 174 |
</HEAD> |
170 |
echo '</head>' |
| 175 |
<BODY BGCOLOR="#F0F0F0"> |
171 |
echo '<body bgcolor="#f0f0f0">' |
| 176 |
__EOT__ |
172 |
for file in "$wwwdir"/*-day.png |
| 177 |
for file in $wwwdir/*-day.png; do |
173 |
do |
| 178 |
echo "<P ALIGN=\"center\"><FONT FACE=\"ARIAL\">" >>$wwwdir/$indexhtm |
174 |
echo '<p align="center"><font face="arial">' |
| 179 |
cat "`echo \"$file\" | sed \"s/-day.png/.txt/\"`" >>$wwwdir/$indexhtm |
175 |
cat "${file%-day.png}.txt" |
| 180 |
echo "<BR>" >>$wwwdir/$indexhtm |
176 |
echo '<br/>' |
| 181 |
echo "<IMG SRC=\"`basename $file`\"><BR>" >>$wwwdir/$indexhtm |
177 |
echo "<img src=\"$(basename "$file")\"/><br/>" |
| 182 |
echo "<IMG SRC=\"`basename $file -day.png`-week.png\"><BR>" >>$wwwdir/$indexhtm |
178 |
echo "<img src=\"$(basename "$file" -day.png)-week.png\"/><br/>" |
| 183 |
echo "<IMG SRC=\"`basename $file -day.png`-month.png\"><BR>" >>$wwwdir/$indexhtm |
179 |
echo "<img src=\"$(basename "$file" -day.png)-month.png\"/><br/>" |
| 184 |
echo "<IMG SRC=\"`basename $file -day.png`-year.png\"><BR>" >>$wwwdir/$indexhtm |
180 |
echo "<img src=\"$(basename "$file" -day.png)-year.png\"/><br/>" |
| 185 |
echo "</FONT></P>" >>$wwwdir/$indexhtm |
181 |
echo '</font></p>' |
| 186 |
done |
182 |
done |
| 187 |
cat <<__EOT__ >>$wwwdir/$indexhtm |
183 |
echo '</body>' |
| 188 |
</BODY> |
184 |
echo '</html>' |
| 189 |
</HTML> |
185 |
) >"$wwwdir/$indexhtm" |
| 190 |
__EOT__ |
|
|
| 191 |
|