| Deutsch English Français Italiano | 
| <100qmo3$8ldq$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article | 
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: The Natural Philosopher <tnp@invalid.invalid>
Newsgroups: comp.os.linux.misc,comp.sys.raspberry-pi
Subject: Re: Simple way for web to execute root shell script.
Date: Fri, 23 May 2025 21:44:51 +0100
Organization: A little, after lunch
Lines: 76
Message-ID: <100qmo3$8ldq$1@dont-email.me>
References: <100pphq$2taj$2@dont-email.me> <100qfmc$78ks$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 23 May 2025 22:44:53 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="3d7cd618be9f8f567fee64e098e28796";
	logging-data="284090"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+qi/V/wiEt1WcHWmPdP3XhD9qzQ0V4fn8="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:s0AKHX12NyLOjKThd/lM95R/gxw=
In-Reply-To: <100qfmc$78ks$3@dont-email.me>
Content-Language: en-GB
On 23/05/2025 19:44, Rich wrote:
> In comp.os.linux.misc The Natural Philosopher <tnp@invalid.invalid> wrote:
>> I have a shell script that monitors hardware stuff - it needs to run
>> as root and be called by Apache as user www.
>>
>>   Bookworm linux on a Pi4.
>>
>> Its all inside a domestic firewall so security is not a huge issue.
>> What is the quickest and simplest solution to this?
> 
> You've been given lots of options already.  But not this one.
> 
> What "hardware stuff" is it monitoring?  If it is reading files in
> /proc and/or /sys to obtain its "data" then another alternative would
> be to setup /proc and /sys to be mounted group or world readable (or to
> reset permissions on the necessary files via a rc.local boot script to
> group or world readable).  That would let the script "monitor" without
> being root.  Then you could even convert the script into a CGI script
> (which Apache is more than able to execute, and doing so for minimal
> text output involves the script outputting a handful of HTTP headers
> before the monitor data) and get your "monitoring data" back via
> Apache.
> 
Sadly the data is not available in /sys or /proc AFAIK.
I wanted information on the temperature and data volumes on the SSDs and 
the temperature of the ARM core. Plus data on the amount of data being 
transported over the ethernet interface.
The tools that came to hand were vgcencmd, smartctl, df and ip. Plus 
some sedery grepery and  awkery
  The script is (if you are interested)
#!/bin/bash
smartctl -a /dev/sda | grep Celsius | awk '{print $10}'
smartctl -a /dev/sdb | grep Celsius | awk '{print $10}'
vcgencmd measure_temp | sed -e 's/temp=//' | sed -e "s/'C//"
ip -s link show dev eth0 | awk 'FNR == 4 {print $1}'
ip -s link show dev eth0 | awk 'FNR == 6 {print $1}'
df -h | grep /dev/sd
A typical output is
40
44
57.4
220513467
17430583
/dev/sda2       110G  6.1G   98G   6% /
/dev/sda1       510M   66M  445M  13% /boot/firmware
/dev/sda3       366G  126G  222G  37% /home
/dev/sdb1       219G  130G   78G  63% /backup
/dev/sdb2       1.6T  1.3T  297G  81% /home/Media
/dev/sda5       990G  559G  381G  60% /home/Media/Unedited
/dev/sda6       366G   26G  322G   8% /backup2
The intention is to poll that using AJAX and parse it into the position 
of needles on dials in a web page.
I used to do this via SNMP, but less and less is available with SNMP and 
its clunky as shit,
If any of that is in /proc or /sys. I would like to hear about it.
None of this is precision stuff: I am building an ARM based NAS and I 
just need a quick and easy way to keep an eye on it to see if it gets to 
hot or too full as I develop stuff
-- 
In theory, there is no difference between theory and practice.
In practice, there is.
-- Yogi Berra