2015-02-18 2 views
0

Я довольно новичок в создании сценариев bash, но при настройке NAS с FreeNAS я обнаружил, что GUI не имеет никакой реализации по умолчанию для регистрации температуры жесткого диска, поэтому я попытался настроить сценарий bash, который будет записывать temps в файл и запускаться как задание cron. То, что я закончил сложение, выглядит очень грязно, но работает, когда запускается как скрипт с консоли.Bash Script с smartctl не работает

HDDtemps.sh:

#!/bin/bash -- 
PATH=$PATH:/tmp:/usr/local/sbin 
printf '%s %s %s %s %s\n' $(echo -n $(date +"%b %d %T")) ' :: ada0 Temperature Celsius = ' $(echo $(smartctl -A /dev/ada0 | grep Temperature_Celsius) | awk '{print $10}') >> temperatures.txt 
printf '%s %s %s %s %s\n' $(echo -n $(date +"%b %d %T")) ' :: ada1 Temperature Celsius = ' $(echo $(smartctl -A /dev/ada1 | grep Temperature_Celsius) | awk '{print $10}') >> temperatures.txt 
exit; 

Когда выполняется хрон однако, создается файл и печатается в, но только

Feb 17 19:22:00 :: ada0 Temperature Celsius =

записывается в файл, температура не появляется. Я не уверен, что я делаю неправильно здесь, и я был бы признателен за любую помощь.

Спасибо!

EDIT:

cronjob является

* * * * * sh /path/to/HDDtemps.sh

+0

Вы установили smartmontools [smartmontools] (http://www.smartmontools.org/) – Rustam

+0

Да, как я уже сказал, сценарий работает так, как ожидалось, когда он выполняется через консоль, температуры записываются правильно в файл, это только проблема из кроны. – odin

ответ

0

может быть, убедитесь, что smartctl двоичная присутствует в /USR/SBIN/ и указать абсолютный путь /USR/sbin/smartctl для smartctl в скрипте, запущенном cronjob, поэтому замените smartctl с /usr/sbin/smartctl.

 Смежные вопросы

  • Нет связанных вопросов^_^