53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| id="$1"
 | |
| found=0
 | |
| device=""
 | |
| 
 | |
| while read line; do
 | |
| 	if [[ $line == "["* ]]; then
 | |
| 		if [ $found = 1 ]; then
 | |
| 			echo -n '{"device":"'$device'", "name":"'$name'", "status":"'$status'", "temp":'$temp', "size":'$size', "num_reads":'$num_reads', '
 | |
| 			echo -n '"num_writes":'$num_writes', "num_errors":'$num_errors', "type":"'$type'", "fs_size":'$fsSize', "fs_free":'$fsFree', '
 | |
| 			break
 | |
| 		else
 | |
| 			device=''
 | |
| 			name=''
 | |
| 			status=''
 | |
| 			temp=-1
 | |
| 			size=-1
 | |
| 			num_reads=-1
 | |
| 			num_writes=-1
 | |
| 			num_errors=-1
 | |
| 			type=""
 | |
| 			fsSize=-1
 | |
| 			fsFree=-1
 | |
| 		fi
 | |
| 	else
 | |
| 		while IFS="=" read key value; do
 | |
| 			value="${value%\"}"
 | |
| 			value="${value#\"}"
 | |
| 			[ $key = "id" ] && [ "$value" = "$id" ] && found=1
 | |
| 			[ $key = "device" ] && device="$value"
 | |
| 			[ $key = "name" ] && name="$value"
 | |
| 			[ $key = "status" ] && status="$value"
 | |
| 			[ $key = "temp" ] && [ "$value" != "*" ] && temp="$value"
 | |
| 			[ $key = "size" ] && size=$(( $value * 1024 ))
 | |
| 			[ $key = "numReads" ] && num_reads="$value"
 | |
| 			[ $key = "numWrites" ] && num_writes="$value"
 | |
| 			[ $key = "numErrors" ] && num_errors="$value"
 | |
| 			[ $key = "type" ] && type="$value"
 | |
| 			[ $key = "fsSize" ] && fsSize=$(( $value * 1024 ))
 | |
| 			[ $key = "fsFree" ] && fsFree=$(( $value * 1024 ))
 | |
| 		done <<< "$line"
 | |
| 	fi
 | |
| done < <(cat /var/local/emhttp/disks.ini ; echo "[empty]")
 | |
| 
 | |
| if [ $found = 0 ]; then
 | |
| 	echo "UNSUPPORTED"
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| read bytes_read bytes_written _ < <(grep $device"=" /var/local/emhttp/diskload.ini | cut -d"=" -f2)
 | |
| echo '"bytes_reading":'$bytes_read', "bytes_writing":'$bytes_written'}'
 |