Jump to content

TheBB

Moderators
  • Posts

    2,410
  • Joined

  • Last visited

  • Days Won

    51

Everything posted by TheBB

  1. Можно ))) KN-2110 ток там нет ни фильтров, ни красненько-зелёненькой раскраски ))) А, вот, фильтры смотрелись бы неплохо, типа: D - debug (по умолчанию всё, как оно и есть), I - info (только информационные), W - warning (только предупреждения), E - error (только ошибки), C - critical (фих знает, м.б. опционально), с отключением "Обновлять в реальном времени" (чтоб ресурсы не жрало) и блокированием выбора неиспользуемых (защита от ССЗБ и шаловливых ручонок)
  2. Можно! Можно отправлять лог на внешнее устройство, прям "искаропки", "в морде" (Использовать Syslog). Можно "воткнуть" пакет syslog-ng и в нём ковыряться. Можно... )))
  3. "Кто хочет, тот ищет возможности, кто не хочет — ищет причины." (© Сократ) Нужен был лог, без захода на "морду лица" ака dashboard знатная "портянка" выходит, надо что-то с "этим" делать ~ # 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_0.14.0-1_mipsel-3.4.ipk
  4. хех... "слеплено на коленке" hl - https://github.com/pamburus/hl
  5. Докинул. Проблема будет с этим - https://github.com/home-assistant/core/pull/92254 pyasn1 vs pysnmp-pyasn1 (ключ --force-overwrite в помощь)
  6. в файле "/opt/etc/php.ini" найти: log_errors = Off ;error_log = syslog и заменить на: log_errors = On error_log = /opt/var/log/php-error.log
  7. Забыл добавить в Makefile, пакет перезалил...
  8. вопрос выходит за пределы темы, однако... заменить указанную строку и собрать пакет. или 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 (журнал) чтоб работало с текущим, задания править надо в "/opt/etc/crontab" (или раскидывать по каталогам)
  9. включить логирование и изучать логи настраивать под свои нужды напр., сменить порт на сокет, увеличить"menory_limit" или "upload_max_filesize", ...
  10. не сработает, поздравляю - нашли баг. ~ # ~ # 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 +++ ~ # тут 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 +++ ~ # после добавления ~ # 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. ... @Александр Рыжов @zyxmon
  11. SHELL - без разницы PATH - /opt/* поставил впереди, без разницы само задание "*/1 * * * * root /opt/bin/php /opt/share/www/tt-rss/update.php --feeds --quiet" работает
  12. работает ~ # 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. ...
  13. http://forums.zyxmon.org/cron 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 добавить свой вариант
  14. Доброго! жалобы на root`a мы вырубили (эт про безопасность), если надо по "шен-фуй" - нужно настраивать юзверей и права доступа, организовать запуск демонов от их имени, ... (усложнять установку и настройку?). там же, 2 варианта обновления лент - или cron+update.php, или демон update_daemon2.php (без cron`a). терь о cron`e - какой из двух используется? апплет busybox`a или vixie cron (древний, аки окаменелые какахи мамонта)? будем моделировать/воспроизводить.
  15. вот завтра и глянем, обновляет он ленты или нет.
  16. может ленту разобрать не выходит, может лента без обновлений, может... добавьте канал 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) создать файлы, наполнить содержимым, сделать исполняемыми (задать права: chmod +x /path/to/file, где /path/to/file - путь к файлу)
  17. не знает он (скрипт, кстати - исполняемый) такого, для другого он предназначен /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
  18. тут, однозначно, пасс - зачем он берёт внешний и не видит внутренний, надо ковырять настройки устройства...
  19. IP адрес в дом. сети какой? У меня он тож не 192.168.1.1, а другой (условно - 192.168.2.3), его и вписываем в конфиг (tt-rss/config.php).
  20. Так-с, всё, пост обновил, последовательность действий по установке... обновлять схему БД надо в конце, когда файлы подправлены, конфиги настроены.
  21. создаётся, ток схема импортируется терь по другому php /opt/share/www/tt-rss/update.php --update-schema force-yes и IP внешний (TTRSS_SELF_URL_PATH), пробуйте его и вписать в конфиг
  22. если в прошивку добавят cgroup2... а, пока, докеры летают ниже плазмы )))
  23. 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 # /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 # --- адреса, явки, пароли вписываем свои )))
  24. читать "викуську" - https://tt-rss.org/wiki.php (конфиг - https://tt-rss.org/wiki/GlobalConfig) нигде. создать симлинк на php-cli `ln -sf /opt/bin/php-cli /opt/bin/php`
×
×
  • Create New...