LINUX.ORG.RU

Как реализовать чтение нужного лога?

 , ,


0

1

Привет. Есть скрипт. Задача его запускаться и отслеживать в логе строку. Но пока вот такой вопрос. Каждый раз при запуске, программа создает новый лог. А скрипт при запуске будет смотреть старый лог. Как реализовать через команды чтоб он находил последний файл лога открывал его и отслеживал.

#!/bin/bash # выводим название скрипта echo Hashrate

cat '/home/user/Claymore/1522131593_log.txt' | tail -f -n 2500 | grep Total #> /dev/null && sudo reboot


Ответ на: комментарий от r3lgar

Вообще-то ваша конструкция не обязана давать последний лог. Пока из каталога ничего не удаляли, find будет, конечно, считывать имена по дате создания, но после удалений всё пойдёт прахом.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от r3lgar

открывает не последний лог который создан

Он мне открыл 1521016128_log.txt за 14 марта. А этот 1522140894_log.txt последний за 27 марта

SER-88
() автор топика
Ответ на: комментарий от SER-88

А что можно реализовать.

В смысле «как»? Да по разному. Если у вас в этом каталоге файлы только вида «дата_в_секундах_log.txt», то естьт без пробелов и прочих лишних символов, то можно и «ls -t», если нет, то тогда через stat -c '%Y' * | sort -n и так далее.

Удалять все логи перед запуском программы?

Это самое худшее, что можно придумать.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Да удалять самое худшее, не подумал. Поэтому я буду перемещать все в папку Log перед запуском. Тогда создаться один лог и уже через команду его спокойно можно прочитать. А можно ли задать greb числовое значение для вот такой строчки

17:39:56:725 d07f0700 ZEC - Total Speed: 1986.965 H/s, Total Shares: 55, Rejected: 0, Time: 00:32 17:39:56:725 d07f0700 ZEC: GPU0 294.291 H/s, GPU1 284.707 H/s, GPU2 303.392 H/s, GPU3 305.182 H/s, GPU4 414.850 H/s, GPU5 384.543 H/s

если Total Speed опуститься ниже то он должен отреагировать.

SER-88
() автор топика

cat ~/*_log.txt | grep Total | tail -f

IPR ★★★★★
()
Ответ на: комментарий от vodz

Это я оставил в качестве домашнего задания ТСу.

r3lgar ★★★★★
()

Вообще-то нормальные системы традиционно называют файлы конкретным именем, таким как, /var/log.myprog.log и архивируют при помощи logrotate в архивы типа /var/log.myprog.log-20180327.gz. Но несложно и найти последний использованный лог:

LASTLOGFILE=$(ls --sort=time /home/user/Claymore/*_log.txt | head -n1)
legolegs ★★★★★
()
Ответ на: комментарий от vodz

Вот из такого лога. если будет меньше 1980 он перезагрузиться.а этот не сработал.

awk '{if($6 == «Speed:» && $7 < 1980) system(«shutdown -r now»)}'

08:52:17:578 4df10780 Total cards: 6 08:53:53:407 1afed700 ZEC - Total Speed: 2003.581 H/s, Total Shares: 3(0+1+0+1+1+0), Rejected: 0, Time: 00:01 08:58:27:085 1afed700 ZEC - Total Speed: 1993.788 H/s, Total Shares: 5(1+1+0+2+1+1), Rejected: 0, Time: 00:05 09:05:28:146 1bfef700 ZEC - Total Speed: 1984.668 H/s, Total Shares: 17, Rejected: 0, Time: 00:13 09:10:18:351 1bfef700 ZEC - Total Speed: 2008.475 H/s, Total Shares: 21, Rejected: 0, Time: 00:17 09:10:42:389 1afed700 ZEC - Total Speed: 2011.051 H/s, Total Shares: 21(5+4+3+4+10+6), Rejected: 0, Time: 00:18 09:12:24:605 1afed700 ZEC - Total Speed: 2006.029 H/s, Total Shares: 23(6+4+3+5+10+6), Rejected: 0, Time: 00:19 09:13:55:757 1afed700 ZEC - Total Speed: 2000.928 H/s, Total Shares: 27(6+5+3+7+10+7), Rejected: 0, Time: 00:21 09:25:38:481 1bfef700 ZEC - Total Speed: 2012.592 H/s, Total Shares: 48, Rejected: 0, Time: 00:33 09:27:08:651 1bfef700 ZEC - Total Speed: 1986.969 H/s, Total Shares: 51, Rejected: 0, Time: 00:34 09:27:50:830 1bfef700 ZEC - Total Speed: 1995.424 H/s, Total Shares: 51, Rejected: 0, Time: 00:35 09:28:04:889 1bfef700 ZEC - Total Speed: 1997.902 H/s, Total Shares: 52, Rejected: 0, Time: 00:35 09:28:19:956 1bfef700 ZEC - Total Speed: 2001.266 H/s, Total Shares: 5

SER-88
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.