私のディスクの電源状態(スタンバイ、アクテイス)を収集するためのスクリプトを書きました。 これは、このスクリプトに基づいています/tmp/hddpwrstate.log
でhttps://github.com/collectd/collectd/blob/master/contrib/exec-smartctlcollectdのexecスクリプトをデバッグする方法
/usr/share/collectd/exec_hddpwrmode.sh
#!/bin/bash
HOSTNAME="${COLLECTD_HOSTNAME:-$(hostname -f)}"
INTERVAL="${COLLECTD_INTERVAL:-60}"
while sleep "$INTERVAL"
do
for disk in sda sdb sdc sdd sde sdf
do
STATE=$(sudo smartctl -i -n standby /dev/$disk | grep -e "Device is in STANDBY mode" -e "Power mode is: ACTIVE or IDLE" 2>/dev/null)
if [ "$STATE" = "Device is in STANDBY mode, exit(2)" ]
then
# STANBY
VALUE="0"
else
if [ "$STATE" = "Power mode is: ACTIVE or IDLE" ]
then
# ACTIVE or IDLE
VALUE="1"
else
# ERROR
VALUE="U"
fi
fi
echo "PUTVAL $HOSTNAME/disk-$disk/disk-state interval=$INTERVAL N:$VALUE" | tee -a /tmp/hddpwrstate.log
done
done
出力がよさそうです。私はアクセス許可の問題を持っていないことを意味
PUTVAL magneto/exec-smart/pwrstate_sdf interval=10.000 N:0
PUTVAL magneto/exec-smart/pwrstate_sda interval=10.000 N:0
PUTVAL magneto/exec-smart/pwrstate_sdb interval=10.000 N:1
PUTVAL magneto/exec-smart/pwrstate_sdc interval=10.000 N:0
PUTVAL magneto/exec-smart/pwrstate_sdd interval=10.000 N:0
PUTVAL magneto/exec-smart/pwrstate_sde interval=10.000 N:0
PUTVAL magneto/exec-smart/pwrstate_sdf interval=10.000 N:0
は(スクリプトは、sudoを使用することができ、ユーザが実行する必要があります)。 それはcollectdによって実行されます
しかし、/var/lib/collectd/rrd/<hostname>
に新しいrrdファイルがなく、InfluxDBに新しい測定値がありません。
> show measurements
name: measurements
name
----
cpu_value
df_value
disk_io_time
disk_read
disk_value
disk_weighted_io_time
disk_write
entropy_value
interface_rx
interface_tx
irq_value
load_longterm
load_midterm
load_shortterm
memory_value
processes_value
rrdcached_value
swap_value
uptime_value
users_value
デバッグを有効にしようとしました。
<Plugin syslog>
LogLevel debug
</Plugin>
しかし、それは役に立ちません。
Nov 19 12:13:12 magneto collectd[30028]: Exiting normally.
Nov 19 12:13:12 magneto collectd[30028]: collectd: Stopping 5 read threads.
Nov 19 12:13:12 magneto collectd[30028]: exec plugin: Sent SIGTERM to 30042
Nov 19 12:13:12 magneto collectd[30028]: collectd: Stopping 5 write threads.
Nov 19 12:13:13 magneto collectd[31752]: Stopping statistics collection and monitoring daemon: collectd.
Nov 19 12:13:13 magneto collectd[31767]: syslog: invalid loglevel [debug] defaulting to 'info'
Nov 19 12:13:13 magneto collectd[31768]: syslog: invalid loglevel [debug] defaulting to 'info'
Nov 19 12:13:13 magneto collectd[31769]: Initialization complete, entering read-loop.
Nov 19 12:13:13 magneto collectd[31764]: Starting statistics collection and monitoring daemon: collectd.
私のスクリプトはなぜ機能しませんか? 問題がここにありますか? または、問題を自分で見つけるためにどのようにデバッグできますか?
私のシステム:Debian 8 with OpenMediaVault。
見てみてください。http://www.shellcheck.net/ – Cyrus
感謝を。そのサイトを知らなかった。 スクリプトに残っている問題はありません。 まだcollectdで動作していません。 –