Я довольно новичок в создании сценариев 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
Вы установили smartmontools [smartmontools] (http://www.smartmontools.org/) – Rustam
Да, как я уже сказал, сценарий работает так, как ожидалось, когда он выполняется через консоль, температуры записываются правильно в файл, это только проблема из кроны. – odin