2
2
3
3
_parseAndPrint () {
4
4
while read data; do
5
- echo -n " $data " | sed -r " s/' /\\\\ ' /g" | tr -d " \n" ;
5
+ echo -n " $data " | sed -r " s/\" /\\\\\" /g" | tr -d " \n" ;
6
6
done ;
7
7
}
8
8
9
9
arp_cache () {
10
10
arpCommand=$( command -v arp)
11
11
12
12
result=$( $arpCommand | awk ' BEGIN {print "["} NR>1 \
13
- {print "{ ' addr' : ' " $1 " ' , " \
14
- "' hw_type' : ' " $2 " ' , " \
15
- "' hw_addr.' : ' " $3 " ' , " \
16
- "' mask' : ' " $5 " ' }, " \
13
+ {print "{ \" addr\": \"" $1 "\" , " \
14
+ "\" hw_type\": \"" $2 "\" , " \
15
+ "\" hw_addr.\": \"" $3 "\" , " \
16
+ "\" mask\": \"" $5 "\" }, " \
17
17
} \
18
18
END {print "]"}' \
19
19
| /bin/sed ' N;$s/},/}/;P;D' )
@@ -26,25 +26,30 @@ arp_cache() {
26
26
bandwidth () {
27
27
28
28
/bin/cat /proc/net/dev \
29
- | awk ' BEGIN {print "["} NR>2 {print "{ ' interface' : ' " $1 " ' ," \
30
- " ' tx ' : " $2 "," \
31
- " ' rx ' : " $10 " }," } END {print "]"}' \
29
+ | awk ' BEGIN {print "["} NR>2 {print "{ \" interface\": \"" $1 "\" ," \
30
+ " \"tx\" : " $2 "," \
31
+ " \"rx\" : " $10 " }," } END {print "]"}' \
32
32
| /bin/sed ' N;$s/,\n/\n/;P;D' \
33
33
| _parseAndPrint
34
34
}
35
35
36
36
common_applications () {
37
37
result=$( whereis php node mysql mongo vim python ruby java apache2 nginx openssl vsftpd make \
38
38
| awk -F: ' {if(length($2)==0) { installed="false"; } else { installed="true"; } \
39
- print "{ \"binary\": \"" $1 "\", \"location\": \"" $2 "\", \"installed\": \"installed\" },"}' )
39
+ print \
40
+ "{ \
41
+ \"binary\": \""$1"\", \
42
+ \"location\": \""$2"\", \
43
+ \"installed\": "installed" \
44
+ },"}' )
40
45
41
46
echo " [" ${result% ?} " ]" | _parseAndPrint
42
47
}
43
48
44
49
cpu_info () {
45
50
46
51
result=$( /usr/bin/lscpu \
47
- | /usr/bin/awk -F: ' {print "' " $1 " ' : ' " $2 " ' ," } ' \
52
+ | /usr/bin/awk -F: ' {print "\"" $1"\": \"" $2"\" ," } ' \
48
53
)
49
54
50
55
echo " {" ${result% ?} " }" | _parseAndPrint
@@ -54,12 +59,12 @@ cpu_intensive_processes() {
54
59
55
60
result=$( /bin/ps axo pid,user,pcpu,rss,vsz,comm --sort -pcpu,-rss,-vsz \
56
61
| head -n 15 \
57
- | /usr/bin/awk ' BEGIN{OFS=":"} NR>1 {print "{ ' pid' : " $1 \
58
- ", ' user' : ' " $2 " ' " \
59
- ", ' cpu%' : " $3 \
60
- ", ' rss' : " $4 \
61
- ", ' vsz' : " $5 \
62
- ", ' cmd' : ' " $6 " ' " "},"\
62
+ | /usr/bin/awk ' BEGIN{OFS=":"} NR>1 {print "{ \" pid\" : " $1 \
63
+ ", \" user\": \"" $2 "\" " \
64
+ ", \" cpu%\" : " $3 \
65
+ ", \" rss\" : " $4 \
66
+ ", \" vsz\" : " $5 \
67
+ ", \" cmd\": \"" $6 "\" " "},"\
63
68
}' )
64
69
65
70
echo " [" ${result% ?} " ]" | _parseAndPrint
@@ -127,9 +132,9 @@ cron_history() {
127
132
128
133
result=$( $grepCmd -m$numberOfLines CRON $cronLog \
129
134
| awk ' { s = ""; for (i = 6; i <= NF; i++) s = s $i " "; \
130
- print "{' time' : ' " $1 " " $2 " " $3 " ' ," \
131
- "' user' : ' " $6 " ' ," \
132
- "' message' : ' " $5 " " gensub(" ' " , "\\\\' " , " g" , s) " ' " \
135
+ print "{\" time\" : \"" $1" "$2" "$3 "\" ," \
136
+ "\" user\" : \"" $6 "\" ," \
137
+ "\" message\" : \"" $5" "gensub("\"" , "\\\\\"" , "g", s) "\" " \
133
138
"},"
134
139
}'
135
140
)
@@ -150,12 +155,12 @@ current_ram() {
150
155
151
156
memInfo=` $catCmd $memInfoFile | $grepCmd ' MemTotal\|MemFree\|Buffers\|Cached' `
152
157
153
- echo $memInfo | $awkCmd ' {print "{ ' total' : " ($2/1024) ", ' used' : " ( ($2-($5+$8+$11))/1024 ) ", ' available' : " (($5+$8+$11)/1024) " }" }' | _parseAndPrint
158
+ echo $memInfo | $awkCmd ' {print "{ \" total\" : " ($2/1024) ", \" used\" : " ( ($2-($5+$8+$11))/1024 ) ", \" available\" : " (($5+$8+$11)/1024) " }" }' | _parseAndPrint
154
159
}
155
160
156
161
disk_partitions () {
157
162
158
- result=$( /bin/df -Ph | awk ' NR>1 {print "{' file_system' : ' " $1 " ' , ' size' : ' " $2 " ' , ' used' : ' " $3 " ' , ' avail' : ' " $4 " ' , ' used%' : ' " $5 " ' , ' mounted' : ' " $6 " ' },"}' )
163
+ result=$( /bin/df -Ph | awk ' NR>1 {print "{\" file_system\": \"" $1 "\", \" size\": \"" $2 "\", \" used\": \"" $3 "\", \" avail\": \"" $4 "\", \" used%\": \"" $5 "\", \" mounted\": \"" $6 "\" },"}' )
159
164
160
165
echo [ ${result% ?} ] | _parseAndPrint
161
166
}
@@ -167,12 +172,12 @@ docker_processes() {
167
172
for i in $containers ; do
168
173
result=" $result $( /usr/bin/docker top $i axo pid,user,pcpu,pmem,comm --sort -pcpu,-pmem \
169
174
| head -n 15 \
170
- | /usr/bin/awk -v cnt=" $i " ' BEGIN{OFS=":"} NR>1 {print "{ ' cname' : ' " cnt \
171
- " ' , ' pid' : " $1 \
172
- ", ' user' : ' " $2 " ' " \
173
- ", ' cpu%' : " $3 \
174
- ", ' mem%' : " $4 \
175
- ", ' cmd' : ' " $5 " ' " "},"\
175
+ | /usr/bin/awk -v cnt=" $i " ' BEGIN{OFS=":"} NR>1 {print "{ \" cname\": \" " cnt \
176
+ "\", \" pid\" : " $1 \
177
+ ", \" user\": \"" $2 "\" " \
178
+ ", \" cpu%\" : " $3 \
179
+ ", \" mem%\" : " $4 \
180
+ ", \" cmd\": \"" $5 "\" " "},"\
176
181
}' ) "
177
182
done
178
183
@@ -207,7 +212,7 @@ download_transfer_rate() {
207
212
in_kbytes=$(( in_bytes / 1024 ))
208
213
209
214
# convert transfer rate to KB
210
- json_output=" $json_output ' $basename ' : $in_kbytes "
215
+ json_output=" $json_output \" $basename \" : $in_kbytes "
211
216
212
217
# if it is not the last line
213
218
if [[ ! $interface == $last ]]
@@ -243,14 +248,14 @@ general_info() {
243
248
uptime_seconds=$( /bin/cat /proc/uptime | awk ' {print $1}' )
244
249
server_time=$( date)
245
250
246
- echo " { 'OS': ' $os ', ' Hostname': ' $hostname ', ' Uptime': ' $( displaytime ${uptime_seconds% .* } ) ', ' Server Time': ' $server_time ' }" | _parseAndPrint
251
+ echo " { \" OS \" : \" $os \" , \" Hostname\" : \" $hostname \" , \" Uptime\" : \" $( displaytime ${uptime_seconds% .* } ) \" , \" Server Time\" : \" $server_time \" }" | _parseAndPrint
247
252
}
248
253
249
254
io_stats () {
250
255
251
256
result=$( /bin/cat /proc/diskstats | /usr/bin/awk \
252
257
' { if($4==0 && $8==0 && $12==0 && $13==0) next } \
253
- {print "{ ' device' : ' " $3 " ' , ' reads' : ' " $4 " ' , ' writes' : ' " $8 " ' , ' in_prog.' : ' " $1 2 " ' , ' time' : ' " $1 3 " ' },"}'
258
+ {print "{ \" device\": \"" $3 "\", \" reads\": \"" $4"\", \" writes\": \"" $8 "\", \" in_prog.\": \"" $12 "\", \" time\": \"" $13 "\" },"}'
254
259
)
255
260
256
261
echo [ ${result% ?} ] | _parseAndPrint
@@ -271,10 +276,10 @@ ip_addresses() {
271
276
272
277
for item in $( $ifconfigCmd | $grepCmd -oP " ^[a-zA-Z0-9:]*(?=:)" )
273
278
do
274
- echo -n " {' interface' : ' " $item " ', 'ip' : ' $( $ifconfigCmd $item | $grepCmd " inet" | $awkCmd ' {match($0,"inet (addr:)?([0-9.]*)",a)}END{ if (NR != 0){print a[2]; exit}{print "none"}}' ) ' }, "
279
+ echo -n " {\" interface\" : \" " $item " \" , \" ip \" : \" $( $ifconfigCmd $item | $grepCmd " inet" | $awkCmd ' {match($0,"inet (addr:)?([0-9.]*)",a)}END{ if (NR != 0){print a[2]; exit}{print "none"}}' ) \" }, "
275
280
done
276
281
277
- echo " { ' interface': ' external', 'ip': ' $externalIp ' } ]" | _parseAndPrint
282
+ echo " { \" interface\" : \" external\" , \" ip \" : \" $externalIp \" } ]" | _parseAndPrint
278
283
}
279
284
280
285
load_avg () {
@@ -289,14 +294,14 @@ load_avg() {
289
294
numberOfCores=1
290
295
fi
291
296
292
- result=$( $catCmd /proc/loadavg | $awkCmd ' {print "{ ' 1_min_avg' : " ($1*100)/' $numberOfCores ' ", ' 5_min_avg' : " ($2*100)/' $numberOfCores ' ", ' 15_min_avg' : " ($3*100)/' $numberOfCores ' "}," }' )
297
+ result=$( $catCmd /proc/loadavg | $awkCmd ' {print "{ \" 1_min_avg\" : " ($1*100)/' $numberOfCores ' ", \" 5_min_avg\" : " ($2*100)/' $numberOfCores ' ", \" 15_min_avg\" : " ($3*100)/' $numberOfCores ' "}," }' )
293
298
294
299
echo ${result% ?} | _parseAndPrint
295
300
}
296
301
297
302
logged_in_users () {
298
303
299
- result=$( COLUMNS=300 /usr/bin/w -h | /usr/bin/awk ' {print "{' user' : ' " $1 " ' , ' from' : ' " $3 " ' , ' when' : ' " $4 " ' },"}' )
304
+ result=$( COLUMNS=300 /usr/bin/w -h | /usr/bin/awk ' {print "{\" user\": \"" $1 "\", \" from\": \"" $3 "\", \" when\": \"" $4 "\" },"}' )
300
305
301
306
echo [ ${result% ?} ] | _parseAndPrint
302
307
}
@@ -305,7 +310,7 @@ memcached() {
305
310
echo " stats" \
306
311
| /bin/nc -w 1 127.0.0.1 11211 \
307
312
| /bin/grep ' bytes' \
308
- | /usr/bin/awk ' BEGIN {print "{"} {print "' " $2 " ' : " $3 } END {print "}"}' \
313
+ | /usr/bin/awk ' BEGIN {print "{"} {print "\"" $2 "\" : " $3 } END {print "}"}' \
309
314
| /usr/bin/tr ' \r' ' ,' \
310
315
| /bin/sed ' N;$s/,\n/\n/;P;D' \
311
316
| _parseAndPrint
@@ -314,7 +319,7 @@ memcached() {
314
319
memory_info () {
315
320
316
321
/bin/cat /proc/meminfo \
317
- | /usr/bin/awk -F: ' BEGIN {print "{"} {print "' " $1 " ' : ' " $2 " ' ," } END {print "}"}' \
322
+ | /usr/bin/awk -F: ' BEGIN {print "{"} {print "\"" $1 "\": \"" $2 "\" ," } END {print "}"}' \
318
323
| /bin/sed ' N;$s/,\n/\n/;P;D' \
319
324
| _parseAndPrint
320
325
}
@@ -331,7 +336,7 @@ network_connections() {
331
336
| $awkCmd ' NR>2 {print $5}' \
332
337
| $sortCmd \
333
338
| $uniqCmd -c \
334
- | $awkCmd ' BEGIN {print "["} {print "{ ' connections' : " $1 ", ' address' : ' " $2 " ' }," } END {print "]"}' \
339
+ | $awkCmd ' BEGIN {print "["} {print "{ \" connections\" : " $1 ", \" address\": \"" $2 "\" }," } END {print "]"}' \
335
340
| $sedCmd ' N;$s/},/}/;P;D' \
336
341
| _parseAndPrint
337
342
}
@@ -363,7 +368,7 @@ ping() {
363
368
| while read output
364
369
do
365
370
singlePing=$( $pingCmd -qc 2 $output \
366
- | $awkCmd -F/ ' BEGIN { endLine="}," } /^rtt/ { if (' $numOfLinesInConfig ' ==1){endLine="}"} print "{" "' host' : ' ' $output' ' , ' ping' : " $5 " " endLine }' \
371
+ | $awkCmd -F/ ' BEGIN { endLine="}," } /^rtt/ { if (' $numOfLinesInConfig ' ==1){endLine="}"} print "{" "\" host\": \" ' $output ' \", \" ping\" : " $5 " " endLine }' \
367
372
)
368
373
numOfLinesInConfig=$(( $numOfLinesInConfig - 1 ))
369
374
result=$result$singlePing
@@ -390,15 +395,15 @@ pm2_stats() {
390
395
# don't process last 2 lines
391
396
json=$( echo " $data " | tail -n +4 | head -n +2 \
392
397
| awk ' {print "{"}\
393
- {print "' appName' : ' " $2 " ' ,"} \
394
- {print "' id ' : ' " $4 " ' ,"} \
395
- {print "' mode' : ' " $6 " ' ,"} \
396
- {print "' pid' : ' " $8 " ' ,"}\
397
- {print "' status' : ' " $1 0 " ' ,"}\
398
- {print "' restart' : ' " $1 2 " ' ,"}\
399
- {print "' uptime' : ' " $1 4 " ' ,"}\
400
- {print "' memory' : ' " $1 6 $1 7 " ' ,"}\
401
- {print "' watching' : ' " $1 9 " ' "}\
398
+ {print "\" appName\":\"" $2 "\" ,"} \
399
+ {print "\"id\":\"" $4 "\" ,"} \
400
+ {print "\" mode\":\"" $6 "\" ,"} \
401
+ {print "\" pid\":\"" $8 "\" ,"}\
402
+ {print "\" status\":\"" $10 "\" ,"}\
403
+ {print "\" restart\":\"" $12 "\" ,"}\
404
+ {print "\" uptime\":\"" $14 "\" ,"}\
405
+ {print "\" memory\":\"" $16 $17 "\" ,"}\
406
+ {print "\" watching\":\"" $19 "\" "}\
402
407
{print "},"}' )
403
408
# make sure to remove last comma and print in array
404
409
echo " [" ${json% ?} " ]" | _parseAndPrint
@@ -412,21 +417,26 @@ ram_intensive_processes() {
412
417
413
418
result=$( /bin/ps axo pid,user,pmem,rss,vsz,comm --sort -pmem,-rss,-vsz \
414
419
| head -n 15 \
415
- | /usr/bin/awk ' NR>1 {print "{ ' pid' : " $1 \
416
- ", ' user' : ' " $2 \
417
- " ' , ' mem%' : " $3 \
418
- ", ' rss' : " $4 \
419
- ", ' vsz' : " $5 \
420
- ", ' cmd' : ' " $6 \
421
- " ' },"}' )
420
+ | /usr/bin/awk ' NR>1 {print "{ \" pid\" : " $1 \
421
+ ", \" user\": \" " $2 \
422
+ "\", \" mem%\" : " $3 \
423
+ ", \" rss\" : " $4 \
424
+ ", \" vsz\" : " $5 \
425
+ ", \" cmd\": \" " $6 \
426
+ "\" },"}' )
422
427
423
428
echo [ ${result% ?} ] | _parseAndPrint
424
429
}
425
430
426
431
recent_account_logins () {
427
432
428
433
result=$( /usr/bin/lastlog -t 365 \
429
- | /usr/bin/awk ' NR>1 { print "{ \"user\": \"" $1 "\", " "\"ip\": \"" $3 "\"," "\"date\": \"" $5" "$6" "$7" "$8" "$9 "\" }" }'
434
+ | /usr/bin/awk ' NR>1 {\
435
+ print "{ \
436
+ \"user\": \"" $1 "\", \
437
+ \"ip\": \"" $3 "\","" \
438
+ \"date\": \"" $5" "$6" "$7" "$8" "$9 "\"},"
439
+ }'
430
440
)
431
441
echo [ ${result% ?} ] | _parseAndPrint
432
442
}
@@ -445,9 +455,8 @@ redis() {
445
455
446
456
result=$( $redisCommand INFO \
447
457
| grep ' redis_version\|connected_clients\|connected_slaves\|used_memory_human\|total_connections_received\|total_commands_processed' \
448
- | awk -F: ' {print "' " $1 " ' :" "' " $2 " ' " }' \
449
- | tr ' \r' ' "'
450
- | tr ' \n' ' ,'
458
+ | awk -F: ' {print "\"" $1 "\":" "\"" $2 }' \
459
+ | tr ' \r' ' "' | tr ' \n' ' ,'
451
460
)
452
461
echo { ${result% ?} } | _parseAndPrint
453
462
}
@@ -530,15 +539,15 @@ scheduled_crons() {
530
539
531
540
$catCmd " ${temp} " \
532
541
| awk ' BEGIN {print "["} \
533
- {print "{ ' min' : ' " $1 \
534
- " ' , ' hrs' : ' " $2 " ' , " \
535
- " ' day' : ' " $3 " ' , " \
536
- " ' month' : ' " $4 " ' , " \
537
- " ' wkday' : ' " $5 " ' , " \
538
- " ' user' : ' " $6 " ' , " \
539
- " ' CMD' : ' " } \
540
- {for(i=7;i<=NF;++i) printf(" %s " , gensub(" ' " , "\\\\' " , " g" , $i ) ) } \
541
- {print " ' " \
542
+ {print "{ \" min\": \" " $1 \
543
+ "\", \" hrs\": \"" $2 "\" , " \
544
+ " \" day\": \"" $3 "\" , " \
545
+ " \" month\": \"" $4 "\" , " \
546
+ " \" wkday\": \"" $5 "\" , " \
547
+ " \" user\": \"" $6 "\" , " \
548
+ " \" CMD\": \" "} \
549
+ {for(i=7;i<=NF;++i) printf("%s ", gensub("\"" , "\\\\\" ", "g", $i) ) } \
550
+ {print "\" " \
542
551
"}," } \
543
552
END {print "]"}' \
544
553
| $sedCmd ' N;$s/,\n//;P;D' \
@@ -558,7 +567,7 @@ swap() {
558
567
if [ " $swapLineCount " -gt 1 ]; then
559
568
560
569
result=$( $catCmd /proc/swaps \
561
- | $awkCmd ' NR>1 {print "{ ' filename' : ' " $1 " ' , ' type' : ' " $2 " ' , ' size' : ' " $3 " ' , ' used' : ' " $4 " ' , ' priority' : ' " $5 " ' }," }'
570
+ | $awkCmd ' NR>1 {print "{ \" filename\": \"" $1"\", \" type\": \"" $2"\", \" size\": \"" $3"\", \" used\": \"" $4"\", \" priority\": \"" $5"\" }," }'
562
571
)
563
572
564
573
echo [ ${result% ?} ] | _parseAndPrint
@@ -596,7 +605,7 @@ upload_transfer_rate() {
596
605
out_kbytes=$(( out_bytes / 1024 ))
597
606
598
607
# convert transfer rate to KB
599
- json_output=" $json_output ' $basename ' : $out_kbytes "
608
+ json_output=" $json_output \" $basename \" : $out_kbytes "
600
609
601
610
# if it is not the last line
602
611
if [[ ! $interface == $last ]]
@@ -611,18 +620,18 @@ upload_transfer_rate() {
611
620
}
612
621
613
622
user_accounts () {
614
- # # print "{ 'type':" "'" userType "'" ", 'user':" "'" $1 "', 'home': '" $6 "' }," }'
623
+
615
624
result=$( /usr/bin/awk -F: ' { \
616
625
if ($3<=499){userType="system";} \
617
626
else {userType="user";} \
618
- print "{\"type\":\"" userType "\", \"user\":\"" $1 "\", \"home\":\"" $6 "\"},\n " }' < /etc/passwd
627
+ print "{ \"type\": \"" userType "\"" " , \"user\": \"" $1 "\", \"home\": \"" $6 "\" }, " }' < /etc/passwd
619
628
)
620
629
621
630
length=$( echo ${# result} )
622
631
623
- # if [ $length -eq 0 ]; then
624
- result=$( getent passwd | /usr/bin/awk -F: ' { if ($3<=499){userType="system";} else {userType="user";} print "{\"type\":\"" userType "\", \"user\":\"" $1 "\", \"home\":\"" $6 "\"},\n " }' )
625
- # fi
632
+ if [ $length -eq 0 ]; then
633
+ result=$( getent passwd | /usr/bin/awk -F: ' { if ($3<=499){userType="system";} else {userType="user";} print "{ \"type\": \"" userType "\"" " , \"user\": \"" $1 "\", \"home\": \"" $6 "\" }, " }' )
634
+ fi
626
635
627
636
echo [ ${result% ?} ] | _parseAndPrint
628
637
}
0 commit comments