-
Posts
2,410 -
Joined
-
Last visited
-
Days Won
51
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by TheBB
-
-
1 час назад, gaaronk сказал:
Можно же просто
Можно! Можно отправлять лог на внешнее устройство, прям "искаропки", "в морде" (Использовать Syslog). Можно "воткнуть" пакет syslog-ng и в нём ковыряться. Можно... )))
-
"Кто хочет, тот ищет возможности, кто не хочет — ищет причины." (
Нужен был лог, без захода на "морду лица" ака dashboard
Скрытый текст~ # wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/show [ { "log": { "2389": { "message": { "level": "Info", "label": "I", "message": "Network::Interface::Base: \"WifiMaster1/AccessPoint1\": schedule cleared. " }, "timestamp": "Apr 25 18:11:45", "ident": "ndm", "id": 2389 }, "2390": { "message": { "level": "Info", "label": "I", "message": "Network::Interface::Wireless: \"WifiMaster1/AccessPoint1\": SSID saved. " }, "timestamp": "Apr 25 18:11:45", "ident": "ndm", "id": 2390 }, ...
знатная "портянка" выходит, надо что-то с "этим" делать
~ # cat /opt/usr/bin/show-log #!/bin/sh wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/show | \ sed -e '2,3d;s,^\[,,;s,^\],,;s,^[[:space:]]*,,g;s,^"[[:digit:]]*":[[:space:]],,' | \ tr -d '\n' | sed -e 's/},{/}\n{/g;s,}}}$,}\n,g' ~ # ~ # show-log {"message": {"level": "Info","label": "I","message": "Network::Interface::Base: \"WifiMaster1/AccessPoint1\": schedule cleared. "},"timestamp": "Apr 25 18:11:45","ident": "ndm","id": 2389} {"message": {"level": "Info","label": "I","message": "Network::Interface::Wireless: \"WifiMaster1/AccessPoint1\": SSID saved. "},"timestamp": "Apr 25 18:11:45","ident": "ndm","id": 2390} ...
так куда веселей, не правда ли? но... хочется большего! (см. выше)
да, знаю, можно натравить jq, однако, мы лёгких путей не ищем, т.к. комсомольцы без трудностей не могут )))
Скрытый текст~ # hl --help hl 0.14.0 JSON log converter to human readable representation USAGE: hl [OPTIONS] [--] [FILE]... ARGS: <FILE>... Files to process OPTIONS: --buffer-size <BUFFER_SIZE> Buffer size [env: HL_BUFFER_SIZE=] [default: "2 MiB"] -c Handful alias for --color=always, overrides --color option -C, --concurrency <CONCURRENCY> Number of processing threads [env: HL_CONCURRENCY=] --color <COLOR> Color output options [env: HL_COLOR=] [default: auto] [possible values: auto, always, never] -e, --hide-empty-fields Hide empty fields, applies for null, string, object and array fields only [env: HL_HIDE_EMPTY_FIELDS=] -E, --show-empty-fields Show empty fields, overrides --hide-empty-fields option [env: HL_SHOW_EMPTY_FIELDS=] -f, --filter <FILTER> Filtering by field values in one of forms [<key>=<value>, <key>~=<value>, <key>~~=<value>, <key>!=<value>, <key>!~=<value>, <key>!~~=<value>] where ~ denotes substring match and ~~ denotes regular expression match -h, --hide <HIDE> Hide or unhide fields with the specified keys, prefix with ! to unhide, specify !* to unhide all --help Print help information --interrupt-ignore-count <INTERRUPT_IGNORE_COUNT> Number of interrupts to ignore, i.e. Ctrl-C (SIGINT) [env: HL_INTERRUPT_IGNORE_COUNT=] [default: 3] -l, --level <LEVEL> Filtering by level [env: HL_LEVEL=] [possible values: error, warning, info, debug] -L, --local Use local time zone, overrides --time-zone option --list-themes List available themes and exit --max-message-size <MAX_MESSAGE_SIZE> Maximum message size [env: HL_MAX_MESSAGE_SIZE=] [default: "64 MiB"] -P Handful alias for --paging=never, overrides --paging option --paging <PAGING> Output paging options [env: HL_PAGING=] [default: auto] [possible values: auto, always, never] -r, --raw-fields Disable unescaping and prettifying of field values --since <SINCE> Filtering by timestamp >= the value (--time-zone and --local options are honored) -t, --time-format <TIME_FORMAT> Time format, see https://man7.org/linux/man-pages/man1/date.1.html [env: HL_TIME_FORMAT=] [default: "%b %d %T.%3N"] --theme <THEME> Color theme [env: HL_THEME=] [default: one-dark-green] --until <UNTIL> Filtering by timestamp <= the value (--time-zone and --local options are honored) -V, --version Print version information -Z, --time-zone <TIME_ZONE> Time zone name, see column "TZ database name" at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones [env: HL_TIME_ZONE=] [default: Europe/Moscow] ~ #
- 2
-
хех...
"слеплено на коленке"
Скрытый текст~ # cat /opt/usr/bin/get-log #!/bin/sh wget -qO - --post-data='[{"log":{"once":true}}]' localhost:79/rci/show | \ sed -e '2,3d;s,^\[,,;s,^\],,;s,^[[:space:]]*,,g;s,^"[[:digit:]]*":[[:space:]],,' | tr -d '\n' | \ sed -e 's/},{/}\n{/g;s,}}}$,}\n,g' | \ sed -e 's,^{"message":[[:space:]],,g;s!},!,!g' > /opt/var/log/$HOSTNAME-$(date +%Y_%m_%dT%H:%M).log ~ #
~ # ./hl -l error /opt/var/log/Keenetic-6065-2023_05_18T19:50.log
~ # ./hl -f label=W /opt/var/log/Keenetic-6065-2023_05_18T19:50.log
- 2
-
В 08.05.2023 в 13:42, Alexandr Al сказал:
Не хватает зависимости python3-fnvhash.
Докинул. Проблема будет с этим - https://github.com/home-assistant/core/pull/92254 pyasn1 vs pysnmp-pyasn1 (ключ --force-overwrite в помощь)
-
17 часов назад, romanfly сказал:
Как включить логгирование?
в файле "/opt/etc/php.ini" найти:
log_errors = Off
;error_log = syslog
и заменить на:
log_errors = On
error_log = /opt/var/log/php-error.log
- 1
-
17 минут назад, romanfly сказал:
3. папки /opt/var/spool/ по этому пути нет.
Забыл добавить в Makefile, пакет перезалил...
- 1
-
46 минут назад, romanfly сказал:
Здравствуйте, я совсем не понял что-где надо изменить.. чтоб этот патч применить. Осталось совсем чутка помочь
вопрос выходит за пределы темы, однако... заменить указанную строку и собрать пакет. или
opkg install http://bin.entware.net/mipselsf-k3.4/test/cron_4.1-5a_mipsel-3.4.ipk
crontabs задвинут как и в busybox`e (/opt/var/spool/cron/crontabs)
https://github.com/Entware/rtndev/blob/master/cron/patches/300-pathnames.h.patch#L8
--- a/cron/patches/300-pathnames.h.patch +++ b/cron/patches/300-pathnames.h.patch @@ -5,7 +5,7 @@ * are all relative to this directory. */ -#define CRONDIR "/var/cron" -+#define CRONDIR "/opt/var/cron" ++#define CRONDIR "/opt/var/spool/cron" #endif /* SPOOLDIR is where the crontabs live. @@ -14,7 +14,7 @@ * didn't exist last time around...) */ -#define SPOOL_DIR "tabs" -+#define SPOOL_DIR "crontabs" ++#define SPOOL_DIR CRONDIR"/crontabs" /* cron allow/deny file. At least cron.deny must * exist for ordinary users to run crontab.
syslog (журнал)
Скрытый текст... [I] May 7 09:45:43 cron[10035]: (CRON) STARTUP (V5.0) [I] May 7 09:45:43 root: Started cron from . [I] May 7 09:46:01 cron[10051]: (tester) CMD (echo "every 1 min. usr-tester") [I] May 7 09:46:01 cron[10052]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:47:01 cron[10432]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:48:01 cron[10788]: (tester) CMD (echo "every 1 min. usr-tester") [I] May 7 09:48:01 cron[10789]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:49:01 cron[10035]: (tester) RELOAD (/opt/var/spool/cron/crontabs/tester) [I] May 7 09:49:01 cron[11142]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:50:01 cron[11490]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 09:50:01 cron[11491]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:51:01 cron[11805]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:52:01 cron[12077]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 09:52:01 cron[12076]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:53:01 cron[12325]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:54:01 cron[12511]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 09:54:01 cron[12510]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:55:01 cron[12731]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:56:01 cron[12852]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 09:56:01 cron[12853]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:57:01 cron[12885]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:58:01 cron[12920]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 09:58:01 cron[12921]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 09:59:01 cron[12955]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:00:01 cron[12988]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:00:01 cron[12989]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:01:01 cron[13036]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:02:01 cron[13069]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:02:01 cron[13070]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:03:01 cron[13104]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:04:01 cron[13137]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:04:01 cron[13138]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:05:01 cron[13172]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:06:01 cron[13211]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:06:01 cron[13212]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:07:01 cron[13248]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:08:01 cron[13285]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:08:01 cron[13286]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:09:01 cron[13322]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:10:01 cron[13359]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:10:01 cron[13360]: (root) CMD (echo "every 1 min. usr-root") [I] May 7 10:12:01 cron[13441]: Core::Syslog: last message repeated 2 times. [I] May 7 10:12:01 cron[13442]: (tester) CMD (echo "every 2 min. usr-tester") [I] May 7 10:13:01 cron[13478]: (root) CMD (echo "every 1 min. usr-root") ...
чтоб работало с текущим, задания править надо в "/opt/etc/crontab" (или раскидывать по каталогам)
- 1
-
22 часа назад, romanfly сказал:
Как узнать почему это происходит???
включить логирование и изучать логи
22 часа назад, romanfly сказал:Как это исправить?
настраивать под свои нужды
напр., сменить порт на сокет, увеличить"menory_limit" или "upload_max_filesize", ...
- 1
-
В 05.05.2023 в 07:17, romanfly сказал:
сделал crontab -e
не сработает, поздравляю - нашли баг.
~ # ~ # strace -ffff -vvvv -e openat crontab -l openat(AT_FDCWD, "/opt/lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/opt/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "crontabs/root", O_RDONLY) = -1 ENOENT (No such file or directory) no crontab for root +++ exited with 1 +++ ~ #
или
~ # ~ # strace -ffff -vvvv -e openat crontab -u root -l openat(AT_FDCWD, "/opt/lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/opt/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "crontabs/root", O_RDONLY) = -1 ENOENT (No such file or directory) no crontab for root +++ exited with 1 +++ ~ #
Цитатаopenat(AT_FDCWD, "crontabs/root", O_RDONLY) = -1 ENOENT (No such file or directory)
тут https://github.com/Entware/rtndev/blob/master/cron/patches/300-pathnames.h.patch#L17
--- a/cron/patches/300-pathnames.h.patch +++ b/cron/patches/300-pathnames.h.patch @@ -14,7 +14,7 @@ * didn't exist last time around...) */ -#define SPOOL_DIR "tabs" -+#define SPOOL_DIR "crontabs" ++#define SPOOL_DIR CRONDIR"/crontabs" /* cron allow/deny file. At least cron.deny must * exist for ordinary users to run crontab.
на выходе (задач нет)
~ # strace -ffff -vvvv -e openat crontab -l openat(AT_FDCWD, "/opt/lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/opt/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/var/cron/crontabs/root", O_RDONLY) = -1 ENOENT (No such file or directory) no crontab for root +++ exited with 1 +++ ~ #
Цитатаopenat(AT_FDCWD, "/opt/var/cron/crontabs/root", O_RDONLY) = -1 ENOENT (No such file or directory)
после добавления
~ # crontab -e no crontab for root - using an empty one crontab: installing new crontab ~ #
работает
~ # ~ # strace -ff -vv -e openat crontab -l openat(AT_FDCWD, "/opt/lib/tls/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/opt/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/opt/var/cron/crontabs/root", O_RDONLY) = 3 # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.XXXX8WIS60 installed on Sat May 6 14:38:46 2023) # (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $) ### test SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin MAILTO="" HOME=/ # ---------- ---------- Default is Empty ---------- ---------- # */1 * * * * echo "ping-pong :)" +++ exited with 0 +++ ~ #
в журнале
... [I] May 6 15:03:01 cron[20240]: (root) RELOAD (/opt/var/cron/crontabs/root) [I] May 6 15:03:01 cron[1234]: (root) CMD (echo "ping-pong :)") [I] May 6 15:19:01 cron[1957]: Core::Syslog: last message repeated 16 times. ...
- 1
-
9 минут назад, romanfly сказал:
SHELL другой и PATH может из за этого??
SHELL - без разницы
PATH - /opt/* поставил впереди, без разницы
само задание "*/1 * * * * root /opt/bin/php /opt/share/www/tt-rss/update.php --feeds --quiet" работает
- 1
-
2 часа назад, romanfly сказал:
ну я просто установил командой opkg install cron и все.... я даже не знаю
работает
~ # cat /opt/etc/crontab SHELL=/opt/bin/sh PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin MAILTO="" HOME=/opt/root # ---------- ---------- Default is Empty ---------- ---------- # #*/1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min #*/5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins #01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly #02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily #22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly #42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthly */1 * * * * root /opt/bin/php /opt/share/www/tt-rss/update.php --feeds --quiet ~ #
... [I] May 4 13:25:41 cron[17584]: (CRON) STARTUP (V5.0) [I] May 4 13:25:42 root: Started cron from . [I] May 4 13:26:01 cron[17698]: (root) CMD (/opt/bin/php /opt/share/www/tt-rss/update.php --feeds --quiet) [I] May 4 13:30:01 cron[17962]: Core::Syslog: last message repeated 4 times. ...
- 1
-
update_daemon:
создать файл сервиса (имя/номер произвольные, напр., "/opt/etc/init.d/S89ttrss-update") со следующим содержимым:
#!/bin/sh ENABLED=yes PROCS=ttrss-update ARGS="--interval 300 --quiet --log /opt/var/log/ttrss-update.log" DESC="Tiny Tiny RSS update daemon" PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin case "$1" in start) if [ -n "$(pgrep -alf update_daemon2)" ]; then echo "$DESC already running." return 0 elif $PROCS $ARGS; then echo "$DESC started." else echo "$DESC failed." fi ;; kill|stop) if [ -n "$(pgrep -alf update_daemon2)" ]; then kill "$(pgrep -alf update_daemon2 | cut -d' ' -f1)" echo "$DESC stopped." else echo "$DESC not running." fi ;; restart) return 0 ;; check|status) if [ -n "$(pgrep -alf update_daemon2)" ]; then echo "$DESC running." else echo "$DESC not running." fi ;; *) echo "Usage: $0 {start|stop|status}" exit 1 ;; esac exit 0
и сделать его исполняемым `chmod +x /opt/etc/init.d/S89ttrss-update`
interval - периодичность обновления (по умолчанию - 120 сек.)
log - файл лога (можно нинужно)
DESC - описание
PROCS - файл-обвязка для запуска php-скрипта (см. ниже)
создать файл скрипта (имя произвольные, напр., "/opt/sbin/ttrss-update", его указать в PROCS (см. выше)) со следующим содержимым:
#!/bin/sh exec /opt/bin/php /opt/share/www/tt-rss/update_daemon2.php "$@" &
и сделать его исполняемым `chmod +x /opt/sbin/ttrss-update`
exec /путь/к/бинарнику /путь/к/скрипту параметры_запуска в_фон
---
"вариации на тему..."
1 вместо скрипта-обвязки создать симлинк и переделать стартовый скрипт (добавить уход в фон)
2 вместо всего, что выше, добавить в PATH путь до каталога со скриптами (/opt/share/www-tt-rss) и переделать стартовый скрипт (добавить уход в фон)
3 вместо update_daemon.php использовать update.php с ключом --daemon, переписав стартовый скрипт
...
N добавить свой вариант
- 1
-
1 час назад, romanfly сказал:
Прочитал на форуме ttrss
Доброго!
жалобы на root`a мы вырубили (эт про безопасность), если надо по "шен-фуй" - нужно настраивать юзверей и права доступа, организовать запуск демонов от их имени, ... (усложнять установку и настройку?). там же, 2 варианта обновления лент - или cron+update.php, или демон update_daemon2.php (без cron`a).
терь о cron`e - какой из двух используется? апплет busybox`a или vixie cron (древний, аки окаменелые какахи мамонта)? будем моделировать/воспроизводить.
- 1
-
вот завтра и глянем, обновляет он ленты или нет.
-
2 минуты назад, romanfly сказал:
Команду /opt/etc/init.d/S80nginx restart делал, не помогло...
это не nginx, а php отлетел.
- 1
-
18 минут назад, romanfly сказал:
К сожалению ни один не сработал...
может ленту разобрать не выходит, может лента без обновлений, может...
добавьте канал https://forum.keenetic.com/forum/26-changelog/#
проверьте в терминале `/opt/share/www/tt-rss/update.php --feeds`
/opt # /opt/share/www/tt-rss/update.php --feeds [16:26:10/503] Lock: update.lock [16:26:10/503] Scheduled 1 feeds to update... [16:26:10/503] Base feed: https://forum.keenetic.com/forum/26-changelog.xml/ [16:26:10/503] => Changelog Latest Topics (ID: 5, U: admin [1]), last updated: never [16:26:11/505] Lock: update_daemon-feed-5.lock [16:26:14/503] <= 3.6718 (sec) exit code: 0 [16:26:14/503] Processed 1 feeds in 3.6792 (sec), 3.6792 (sec/feed avg) [16:26:14/503] Running housekeeping tasks for user 1... [16:26:14/503] Sending digests, batch of max 15 users, headline limit = 1000 [16:26:14/503] All done. [16:26:14/503] Expired cache/export: removed 0 files. [16:26:14/503] Expired cache/feeds: removed 0 files. [16:26:14/503] Expired cache/images: removed 0 files. [16:26:14/503] Expired cache/upload: removed 0 files. [16:26:14/503] Removed 0 old lock files. [16:26:14/503] Removing old error log entries... [16:26:14/503] Purged 0 orphaned posts. /opt #
должны появиться 2 записи (Changelog 4.0 и Changelog 3.9)
29 минут назад, romanfly сказал:Можно как то другим путем? ну через S89ttrss? Только как это сделать??
создать файлы, наполнить содержимым, сделать исполняемыми (задать права: chmod +x /path/to/file, где /path/to/file - путь к файлу)
-
11 минуту назад, romanfly сказал:
*/30 * * * * /opt/bin/php8-cgi /opt/share/www/tt-rss/update_daemon2.php --feeds --quiet
не знает он (скрипт, кстати - исполняемый) такого, для другого он предназначен
/opt # /opt # /opt/share/www/tt-rss/update_daemon2.php --help Tiny Tiny RSS update daemon. Options: --log FILE - log messages to FILE --log-level N - log verbosity level --tasks N - amount of update tasks to spawn default: 2 --interval N - task spawn interval default: 120 seconds. --quiet - don't output messages to stdout /opt #
и не php8-cgi, php-cli (если нет симлинка php).
Другой нужОн
/opt # /opt/share/www/tt-rss/update.php --help Tiny Tiny RSS CLI management tool ================================= Options: --feeds update all pending feeds --daemon start single-process update daemon --send-digests send pending email digests --cleanup-tags perform maintenance on tags table --quiet don't output messages to stdout --log FILE log messages to FILE --log-level N set log verbosity level (0-2) --update-schema: [force-yes] update database schema, optionally without prompting --force-update mark all feeds as pending update --gen-search-idx generate basic PostgreSQL fulltext search index --plugins-list list installed plugins --debug-feed N update specified feed with debug output enabled --force-refetch debug update: force refetch feed data --force-rehash debug update: force rehash articles --opml-export USER:FILE export OPML of USER to FILE --opml-import USER:FILE import OPML for USER from FILE --user-list list all users --user-add USER[:PASSWORD[:ACCESS_LEVEL=0]] add USER, prompts for password if unset --user-remove USERNAME remove USER --user-check-password USER:PASSWORD returns 0 if user has specified PASSWORD --user-set-password USER:PASSWORD sets PASSWORD of specified USER --user-set-access-level USER:LEVEL sets access LEVEL of specified USER --user-exists USER returns 0 if specified USER exists in the database --force-yes assume 'yes' to all queries /opt #
собсна, для крона м.б. так
*/30 * * * * /opt/share/www/tt-rss/update.php --feeds --quiet
или
*/30 * * * * /opt/bin/php-cli /opt/share/www/tt-rss/update.php --feeds --quiet
или
*/30 * * * * /opt/bin/php /opt/share/www/tt-rss/update.php --feeds --quiet
- 1
-
6 минут назад, romanfly сказал:
Знаете, я вписал внешний белый адрес и заработало... Конечно это видимо не правильно, но работает...
тут, однозначно, пасс - зачем он берёт внешний и не видит внутренний, надо ковырять настройки устройства...
- 1
-
20 минут назад, romanfly сказал:
осталась такая на красном фоне
IP адрес в дом. сети какой? У меня он тож не 192.168.1.1, а другой (условно - 192.168.2.3), его и вписываем в конфиг (tt-rss/config.php).
ЦитатаPlease set SELF_URL_PATH to the correct value detected for your server: http://192.168.2.3:81/tt-rss (you're using: http://192.168.1.1:81/tt-rss)- 1
-
Так-с, всё, пост обновил, последовательность действий по установке...
10 минут назад, romanfly сказал:Вот такой ответ: -sh: php: not found
обновлять схему БД надо в конце, когда файлы подправлены, конфиги настроены.
- 1
-
25 минут назад, romanfly сказал:
База у меня не создается
создаётся, ток схема импортируется терь по другому
php /opt/share/www/tt-rss/update.php --update-schema force-yes
и IP внешний (TTRSS_SELF_URL_PATH), пробуйте его и вписать в конфиг
- 1
-
11 минуту назад, romanfly сказал:
... докер на кинетик не установить? Или возможно?
если в прошивку добавят cgroup2... а, пока, докеры летают ниже плазмы )))
- 1
-
nginx:
opkg install nginx
php8:
opkg install php8 php8-cgi php8-cli php8-fastcgi php8-mod-curl php8-mod-dom php8-mod-fileinfo php8-mod-filter php8-mod-gd php8-mod-intl php8-mod-mbstring php8-mod-mysqli php8-mod-mysqlnd php8-mod-opcache php8-mod-openssl php8-mod-pcntl php8-mod-pdo php8-mod-pdo-mysql php8-mod-session php8-mod-xml php8-mod-xmlreader php8-mod-xmlwriter
mariadb:
opkg install mariadb-client mariadb-server mariadb-server-base
tt-rss: доставить на устройство любым доступным способом, напр., git
opkg install git-http git clone https://git.tt-rss.org/fox/tt-rss.git /opt/share/www/tt-rss
минимальная (базовая) настройка:
установить БД:
mysql_install_db
запустить сервис:
/opt/etc/init.d/S70mysqld start
подключиться и создать БД tt-rss:
mysqladmin -u root password "passwd" mysql -u root -p
create database ttrss; \q
сервер (nginx):
user nobody; worker_processes 1; events { worker_connections 64; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 81; server_name localhost; location / { root /opt/share/www; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /opt/share/nginx/html; } location ~ \.php$ { root /opt/share/www; #fastcgi_pass unix:/opt/var/run/php-fcgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } } }
порт: свой, любой, свободный
исправить "/opt/etc/nginx/fastcgi_params" (см. в теме)
php (fastcgi): либо через порт (оставить, как есть), либо через сокет, заменить строку:
fastcgi_pass 127.0.0.1:9000;
на:
fastcgi_pass unix:/opt/var/run/php-fcgi.sock;
исправить конфиг "/opt/etc/php8/php8-fastcgi" (см. ниже)
php8-fastcgi: либо через порт (оставить, как есть), либо через сокет, заменить строку:
BIND="127.0.0.1:9000"
на:
BIND="/opt/var/run/php-fcgi.sock"
создать симлинк:
ln -sf /opt/bin/php-cli /opt/bin/php
исправить путь к бинарнику:
find /opt/share/www/tt-rss -type f -exec sed -i -e 's,^#!.*php,#!/opt/bin/php,' {} + find /opt/share/www/tt-rss -type f -exec sed -i -e 's,/usr/bin/php,/opt/bin/php,g' {} +
вырубить жалобу на root`a:
sed -i -e 's,posix_getuid() == 0,posix_getuid() == -1,' /opt/share/www/tt-rss/classes/config.php
заделать конфиг tt-rss:
cp /opt/share/www/tt-rss/config.php-dist /opt/share/www/tt-rss/config.php
добавить в файл "/opt/share/www/tt-rss/config.php" (по параметрам, см. "вику" https://tt-rss.org/wiki.php)
putenv('TTRSS_DB_TYPE=mysql'); putenv('TTRSS_DB_HOST=localhost'); putenv('TTRSS_DB_PORT=3306'); putenv('TTRSS_DB_USER=root'); putenv('TTRSS_DB_NAME=ttrss'); putenv('TTRSS_DB_PASS=passwd'); putenv('TTRSS_SELF_URL_PATH=http://192.168.1.1:81/tt-rss'); define('LEGACY_CONSTANT', 'value');
импортировать схему БД:
php /opt/share/www/tt-rss/update.php --update-schema force-yes
(пере)запустить S70mysqld S79php8-fastcgi S80nginx
отправляться на IP:ADD:RE:SS:81/tt-rss устройства терзать настройки... по умолчанию: логин - admin, пароль - password
обновление подписок (cron - см. в теме) или...
дальше лепим, кто во что горазд, типа:
Скрытый текст/opt # /opt # cat /opt/etc/init.d/S89ttrss #!/bin/sh ENABLED=yes PROCS=ttrss-update ARGS="--interval 300 --quiet --log /opt/var/log/ttrss-update.log" DESC="Tiny Tiny RSS update daemon" PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin case "$1" in start) if [ -n "$(pgrep -alf update_daemon2)" ]; then echo "$DESC already running." return 0 elif $PROCS $ARGS; then echo "$DESC started." else echo "$DESC failed." fi ;; kill|stop) if [ -n "$(pgrep -alf update_daemon2)" ]; then kill "$(pgrep -alf update_daemon2 | cut -d' ' -f1)" echo "$DESC stopped." else echo "$DESC not running." fi ;; restart) return 0 ;; check|status) if [ -n "$(pgrep -alf update_daemon2)" ]; then echo "$DESC running." else echo "$DESC not running." fi ;; *) echo "Usage: $0 {start|stop|status}" exit 1 ;; esac exit 0 /opt # /opt # cat /opt/bin/ttrss-update #!/bin/sh exec /opt/bin/php /opt/share/www/tt-rss/update_daemon2.php "$@" & /opt #
/opt # /opt # /opt/etc/init.d/S89ttrss check Tiny Tiny RSS update daemon running. /opt # /opt # /opt/etc/init.d/S89ttrss start Tiny Tiny RSS update daemon already running. /opt #
---
адреса, явки, пароли вписываем свои )))
- 1
-
В 30.04.2023 в 18:57, romanfly сказал:
Можно что то сделать?
читать "викуську" - https://tt-rss.org/wiki.php (конфиг - https://tt-rss.org/wiki/GlobalConfig)
6 часов назад, romanfly сказал:Где можно найти php8? чтоб поправить ссылку?
нигде. создать симлинк на php-cli `ln -sf /opt/bin/php-cli /opt/bin/php`
- 1
Оптимизация и развитие логов в устройстве
in Развитие
Posted
Можно ))) KN-2110
ток там нет ни фильтров, ни красненько-зелёненькой раскраски )))
А, вот, фильтры смотрелись бы неплохо, типа:
D - debug (по умолчанию всё, как оно и есть), I - info (только информационные), W - warning (только предупреждения), E - error (только ошибки), C - critical (фих знает, м.б. опционально), с отключением "Обновлять в реальном времени" (чтоб ресурсы не жрало) и блокированием выбора неиспользуемых (защита от ССЗБ и шаловливых ручонок)