Персонализируйте вывод датчика и сохраните его в файл

Для этого случая использования (ежедневное зеркалирование) вы должны установить rsync daemon rsyncd от Cygwin, и не беспокоиться о ssh/ftp/samba. Вот хороший способ объяснения установки в Windows и CentOS.

http://www.gaztronics.net/howtos/rsync-windows.php

1
16.10.2014, 03:36
1 ответ

Max_Arg_strlen только при вызове на вызов Внешние программы. «Для» является частью синтаксиса Bash, и поэтому Bash будет обрабатывать это напрямую. И да, он запускает команду SEQ и зафиксирует весь STDOUT перед выполнением замены в оператор «для».

-121--111639-

Я получил такую ​​же проблему и внедрил решение:

с использованием SED для разбора трубопроводных данных датчиков с регулярными выражениями результата добавлено к файлу журнала.

  1. Дата написана как Timestamp Unix для файла и формирована на STDOUT. Чтобы подавить линию разбить echo -n "$ (дата +"% h:% m:% s ") .
  2. .
  3. Датчики следующего выхода Впродуется в SED , чтобы разбирать каждую строку, чтобы найти температуру, поиск ° C .
  4. Результат в результате Agine Puped - SED . Теперь строка Свернувшись на три части: имя датчика в начале с толстой кишки и пробела ^ [A-ZA-Z0-9] *: \ S * , температура, состоящая из знака, чисел и точек \ ([0-9. + -] * \) и остальное до конца строки . * $ . Вторая часть помечена как ссылка на использование скобок.
  5. Результат снова работает к SED , чтобы удалить разрывы линии. Нажмите для деталей
  6. Сценарии спит для x секунды. (В моем случае 5 секунд.)

Полученный пакетный скрипт:

# Printing the names of the columns as first row in file
echo "Time;     temp1;  temp2;  Physical id 0;  Core 0; Core 1; Core 2; Core 3; SIO Temp;       temp3" > Temperatures.log
while true
do
    # Printing the time and all temperatures to stdout
    echo -n "$(date +"%H:%M:%S"): "
    sensors | sed -n "/°C/p" | sed "s/^[a-zA-Z0-9 ]*:\s*\([0-9.+-]*\).*$/\1/" | sed ':a;N;$!ba;s/\n/;\t/g'

    # Logging time as UNIX time and temperatures to file
    echo -n "$(date +"%s");     " >> Temperatures.log
    sensors | sed -n "/°C/p" | sed "s/^[a-zA-Z0-9 ]*:\s*\([0-9.+-]*\).*$/\1/" | sed ':a;N;$!ba;s/\n/;\t/g' >> Temperatures.log

    # Sleeping for X seconds
    sleep 5
done
0
28.01.2020, 02:05

Теги

Похожие вопросы