У меня есть небольшой сервер Orange Pi One, работающий на Armbian (на основе Ubuntu), и у него есть скрипт, который проверяет доступность веб-сервера на Rasberry Pi2 под управлением LibreElec 8.0, и если нет, то он выключает и отключает питание сервера (Rasberry Pi), управляемого с помощью пульта 433 МГц управляемый сокет через веб-сервер на устройстве ESP8266. Все устройства находятся в моей домашней сети; нет внешнего доступа.

Сценарий работает нормально, когда я запускаю его из командной строки - я вижу поток логики и т.д. И получаю желаемые результаты. У меня есть строка в моем crontab, чтобы запустить проверку на час. Однако я не вижу никакого вывода в файле журнала, который я указал в перенаправлении в строке в моем crontab. Я знаю, что запись в crontab выполняется, когда создается пустой лог-файл.

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

Я понимаю, что вывод из wget отправляется в dev\null, но я ожидаю, что мои команды echo будут зарегистрированы. Они обрисовывают в общих чертах логический поток в сценарии, который я бы хотел зарегистрировать.

59 0-23 * * */root/loftRPTCheck.sh | while IFS= read -r line; do echo "$(date) $line"; done >> /root/RPTloftlog.txt

Вот команда, которую я использовал для запуска проверки вручную и вывода на мой терминал PuTTY:

root@orangepione:~# ./loftRPTCheck.sh
--2017-05-18 21:05:05--  http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.

--2017-05-18 21:05:13--  (try: 2)  http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.

--2017-05-18 21:05:22--  (try: 3)  http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Retrying.

--2017-05-18 21:05:32--  (try: 4)  http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... Read error (Connection timed out) in headers.
Giving up.

wget to Loft RP Transmission failed
Power off Loft RP
--2017-05-18 21:05:39--  http://192.168.0.237/LOFTOFF
Connecting to 192.168.0.237:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/null’

/dev/null                           [ <=>                                                  ]      68  --.-KB/s    in 0s

2017-05-18 21:05:41 (1.23 MB/s) - ‘/dev/null’ saved [68]

Sleep 10s
Power on Loft RP
--2017-05-18 21:05:51--  http://192.168.0.237/LOFTON
Connecting to 192.168.0.237:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/dev/null’

/dev/null                           [ <=>                                                  ]      68  --.-KB/s    in 0s

2017-05-18 21:05:54 (1.26 MB/s) - ‘/dev/null’ saved [68]

Sleep 20s
Retrying Loft Tranismission..
--2017-05-18 21:06:14--  http://192.168.0.143:9091/
Connecting to 192.168.0.143:9091... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: /transmission/web/ [following]
--2017-05-18 21:06:14--  http://192.168.0.143:9091/transmission/web/
Reusing existing connection to 192.168.0.143:9091.
HTTP request sent, awaiting response... 200 OK
Length: 24139 (24K) [text/html]
Saving to: ‘/dev/null’

/dev/null                       100%[=====================================================>]  23.57K  --.-KB/s    in 0s

2017-05-18 21:06:14 (50.7 MB/s) - ‘/dev/null’ saved [24139/24139]

Restart worked ok.

Так что это выглядит нормально, так как сообщения выводятся при запуске из командной строки, но я не уверен, как лучше всего записать этот вывод в файл с датой и временем в начале каждой строки.

Это сценарий оболочки, который запускается:

root@orangepione:~# cat loftRPTCheck.sh
wget --tries=4 --timeout=7 -O/dev/null http://192.168.0.143:9091

if [[ $? -ne 0 ]]; then
    echo "wget to Loft RP Transmission failed"
    echo "Power off Loft RP"
    wget -O/dev/null http://192.168.0.237/LOFTOFF
    echo "Sleep 10s"
    sleep 10
    echo "Power on Loft RP"
    wget -O/dev/null http://192.168.0.237/LOFTON
    echo "Sleep 20s"
    sleep 20
    echo "Retrying Loft Transmission.."
    wget  --tries=4 --timeout=7 -O/dev/null http://192.168.0.143:9091
    if [[ $? -ne 0 ]]; then
        echo "RP not restarted???"
    else
        echo "Restart worked ok."
    fi
    exit 1;
fi

1 ответ1

0

Команда logger поможет вам. http://manpages.ubuntu.com/manpages/precise/en/man1/logger.1.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .