NEWS
iob diag - Skript
-
Hallo,
da das hier nach einer internen Diskussion klingt, weiß ich nicht ob ich mich hier als Anwender, aber auch Programmierer mal kurz mit einklinken darf.
Vorab, ich gehöre nicht zu der Fraktion die alles und ständig probieren und experimentieren muss. Ich selbst habe fast 20 Jahre für Windows professionelle Software für den Finanzbereich programmiert.
Und ähnlich wie hier gab es ein(e) Anwendung(spaket) (hier ist es der ioBroker) und dazu Laufzeitkomponenten (hier ist es nodejs) und bei mir damals VB, .NET, ACCESS, DAO und ADO.
Aus eigener Supporterfahrung kann ich sagen, der Anwender hat nie was gemacht wenn etwas nicht mehr geht. Aber er hat erwartet das man es wieder richtet. Das war oftmals zeit- und nervenraubend und hat sich offenbar bis heute nicht geändert.
Hier ist es für meine Begriffe exakt so und ihr wendet derartig viel Zeit dafür auf, dass jedes Helferlein was das zu richten vermag, für euch "GOLD" ist. Auch ich habe damals ein Programm geschrieben, was versucht hat alle schrägen Installationen zu richten. Das hat zu 90% auch funktioniert, der Rest ging nur durch Neuinstallation.
Egal wie. So ein Helferlein ist wichtig. Denn es spart euch letztlich Zeit und zeigt dem Anwender, dass da schnell und einfach geholfen wird. Ja ihr helft jetzt auch schnell und professionell, aber mit viel Zeitaufwand.
Fazit. Das Skript, egal wie es aufgerufen und heißen wird, es wird allen helfen. Ihr macht absolut klasse Arbeit. Dafür Danke.
Ro75.
-
@mcm57 sagte in iob diag - Skript:
Ich möchte ein diagnosescript starten und dabei sicher sein dass absolut nichts verändert wird.
Hatten wir schon...
Ist eine Beta-Version, der Code kann da easy rausgezogen werden und in ein eigenes Skript mit eigenem Aufruf gepackt werden.
Ich hatte nur keine Lust, Zeit und Laune das in ein eigenes Repo zu packen, weil ich einige wenigen Dinge bereit zuvor im Hauptskript ermittelt habe.
Der Fix wird nur ausgeführt, wenn man auf Rückfrage die Tastey
drückt.Und absolut nichts wird auch heute schon nicht geändert. Es wird immer ein Symlink von nodejs auf node gesetzt. Sonst funktioniert der Check auf schiefe Installationen nicht.
-
@thomas-braun sagte in iob diag - Skript:
iob nodefix
vielleicht?Zur Diskussion über den Aufruf folgende Idee:
Diagnose
iob diag
> zur Erstellung von Diagnosedaten (eventuell als standard nur das summary, bzw. die nötigsten Infos)
ergänzend dann zum Beispiel:iob diag full
für die komplette Ausgabe? (Weiß nicht ob das konkret Sinn ergibt, ist also eher zur Darstellung der Struktur des Kommandos gedacht)Fixer
iob fix
> zum Prüfen und Fixen der eigentlichen ioBroker Installation
iob fix node
> zum Prüfen und Fixen von Node
(iob fix system
> zum Prüfen und Fixen von weiteren Sytemvorraussetzungen?)
usw.Also praktisch den bestehenden Fixer mit einem weiteren Parameter aufbohren.
Meines Erachtens ist es so am deutlichsten und fix und diag gut voneinander getrennt.
Ich halte nicht viel davon für die gleichen Funktionen (in diesem Fall das Fixen von was auch immer) jeweils ein eigenes iob-Kommando zu kreieren.Wie gesagt nur eine Idee.
MfG,
André -
@andre sagte in iob diag - Skript:
iob fix node > zum Prüfen und Fixen von Node
mag sein, dass ich da ein wenig kleinlich mit der Semantik bin, aber iob nodefix ist für mich "richtiger" als iob fix node.
letzteres impliziert für mich dass der iobroker die node Installation fixed. ersteres wie bereits gesagt, dass ein nodefix stattfindet.
Auch nur als Gedanke!
Dass es im Moment zum testen noch im diag verankert ist, da dies schneller umzusetzen war/ist, wurde auch bereits mehrfach geschrieben.
Später wird es ausgegliedert. -
Ich habe den 'umstrittenen' Code aus 'iob diag' herausgenommen und in ein eigenes Skript 'iob_node_update' überführt. Dafür mach ich aber noch einen separaten Thread auf.
-
@thomas-braun sagte in iob diag - Skript:
Dafür mach ich aber noch einen separaten Thread auf.
erstmal in Tester?
oder gibbet nix zum Testen? -
Doch, testen geht hier:
https://forum.iobroker.net/topic/68035/iob-node-fix-skript -
Eine Frage zu deinem Diag-Skript. Die ausstehenden OS Updates wird ja folgendermaßen ermittelt:
echo -e "\033[34;107m*** OS-Repositories and Updates ***\033[0m"; sudo apt-get update 1>/dev/null && sudo apt-get update APT=$(apt-get upgrade -s |grep -P '^\d+ upgraded'|cut -d" " -f1) echo -e "Pending Updates: $APT";
Warum wird der Befehl 'sudo apt-get update' zweimal ausgeführt?
Ich wollte im ioBroker mittels Javascript die Anzahl der OS Updates ermitteln.
exec('sudo apt-get update && apt-get upgrade -s', function (error, stdout, stderr) { let result = stdout.match(/[0-9]+ aktualisiert/g); if (result) { let result2 = result[0].split(' '); console.log('OS Updates: ' + String(result2[0])); } });
Der Code funktioniert auch mit 1x 'sudo apt-get update'. Übersehe ich da was?
-
@pk68 sagte in iob diag - Skript:
Warum wird der Befehl 'sudo apt-get update' zweimal ausgeführt?
Hat rein optische Gründe. Beim ersten Aufruf hast du da (mehr) GET-Meldungen drin. Die wollte ich ausblenden.
€dit: Deswegen landet die Ausgabe auch im Null-device.
-
Ok, danke.
-
Kann mir jemand mit einem Docker mal die aktuelle Ausgabe von
iob diag
posten? Danke schön!
-
@thomas-braun sagte in iob diag - Skript:
Kann mir jemand mit einem Docker mal die aktuelle Ausgabe von
Ist eine kleine Test-Installation. Hoffe, das reicht.
Skript v.2023-10-10 *** BASE SYSTEM *** Hardware Vendor : Intel(R) Client Systems Kernel : x86_64 Userland : amd64 Docker : v9.0.1 Virtualization : Docker Kernel : x86_64 Userland : amd64 Systemuptime and Load: 21:20:37 up 16 days, 1:21, 0 user, load average: 0.58, 0.76, 0.64 CPU threads: 4 *** Time and Time Zones *** Thu Oct 26 19:20:37 UTC 2023 Thu Oct 26 21:20:37 CEST 2023 CEST +0200 Etc/UTC *** User and Groups *** root /root root *** X-Server-Setup *** X-Server: false Desktop: Terminal: *** MEMORY *** total used free shared buff/cache available Mem: 16G 5.9G 434M 108M 10G 10G Swap: 4.3G 16M 4.3G Total: 20G 6.0G 4.7G 15718 M total memory 5665 M used memory 4923 M active memory 8757 M inactive memory 414 M free memory 1187 M buffer memory 8783 M swap cache 4095 M total swap 16 M used swap 4079 M free swap *** FILESYSTEM *** Filesystem Type Size Used Avail Use% Mounted on overlay overlay 63G 20G 41G 33% / tmpfs tmpfs 64M 0 64M 0% /dev shm tmpfs 64M 0 64M 0% /dev/shm /dev/nvme0n1p3 ext4 63G 14G 47G 23% /opt/iobroker /dev/nvme0n1p2 ext4 63G 20G 41G 33% /etc/hosts tmpfs tmpfs 7.7G 0 7.7G 0% /proc/acpi tmpfs tmpfs 7.7G 0 7.7G 0% /proc/scsi tmpfs tmpfs 7.7G 0 7.7G 0% /sys/firmware Messages concerning ext4 filesystem in dmesg: dmesg: read kernel buffer failed: Operation not permitted Show mounted filesystems \(real ones only\): TARGET SOURCE FSTYPE OPTIONS /opt/iobroker /dev/nvme0n1p3[/iobroker2] ext4 rw,relatime /opt/userscripts /dev/nvme0n1p3[/userscripts] ext4 rw,relatime /etc/resolv.conf /dev/nvme0n1p2[/var/lib/docker/containers/1692bf02133947c23fc1042a4cdfa5caf0fcc3ece1c5f76e03a4a84b7cf3d709/resolv.conf] ext4 rw,relatime /etc/hostname /dev/nvme0n1p2[/var/lib/docker/containers/1692bf02133947c23fc1042a4cdfa5caf0fcc3ece1c5f76e03a4a84b7cf3d709/hostname] ext4 rw,relatime /etc/hosts /dev/nvme0n1p2[/var/lib/docker/containers/1692bf02133947c23fc1042a4cdfa5caf0fcc3ece1c5f76e03a4a84b7cf3d709/hosts] ext4 rw,relatime Files in neuralgic directories: /var: 16M /var/ 13M /var/lib/dpkg 13M /var/lib 12M /var/lib/dpkg/info 1.9M /var/cache /opt/iobroker/backups: 1.3M /opt/iobroker/backups/ /opt/iobroker/iobroker-data: 34M /opt/iobroker/iobroker-data/ 14M /opt/iobroker/iobroker-data/files 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static 13M /opt/iobroker/iobroker-data/files/admin.admin/custom The five largest files in iobroker-data are: 20M /opt/iobroker/iobroker-data/objects.jsonl 6.3M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js.map 2.8M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js 1.6M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_mui_material_Accordion_index_js-node_modules_mui_material_AccordionDetai-57e02d.0886b730.chunk.js.map 652K /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_mui_material_index_js.40e01f69.chunk.js.map USB-Devices by-id: USB-Sticks - Avoid direct links to /dev/* in your adapter setups, please always prefer the links 'by-id': find: '/dev/serial/by-id/': No such file or directory *** NodeJS-Installation *** /usr/bin/nodejs v18.18.2 /usr/bin/node v18.18.2 /usr/bin/npm 9.8.1 /usr/bin/npx 9.8.1 /usr/bin/corepack 0.19.0 nodejs: Installed: 18.18.2-1nodesource1 Candidate: 18.18.2-1nodesource1 Version table: *** 18.18.2-1nodesource1 100 100 /var/lib/dpkg/status Temp directories causing npm8 problem: 0 No problems detected Errors in npm tree: *** ioBroker-Installation *** ioBroker Status iobroker is running on this host. At least one iobroker host is running. Objects type: redis States type: redis Core adapters versions js-controller: 5.0.14 admin: 6.11.0 javascript: "javascript" not found Adapters from github: 0 Adapter State + system.adapter.admin.0 : admin : iobroker2 - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.awtrix-light.0 : awtrix-light : iobroker2 - enabled + system.adapter.backitup.0 : backitup : iobroker2 - enabled + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : iobroker2 - enabled, port: 8081, bind: 0.0.0.0, run as: admin ioBroker-Repositories stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json Active repo(s): stable, beta Installed ioBroker-Instances Used repositories: stable, beta Adapter "admin" : 6.12.0 , installed 6.11.0 [Updatable] Adapter "awtrix-light" : 0.10.0 , installed 0.9.2 [Updatable] Adapter "backitup" : 2.8.7 , installed 2.8.7 Controller "js-controller": 5.0.14 , installed 5.0.14 Objects and States Please stand by - This may take a while Objects: 202 States: 128 *** OS-Repositories and Updates *** Hit:1 http://deb.debian.org/debian bookworm InRelease Hit:2 http://deb.debian.org/debian bookworm-updates InRelease Hit:3 https://repos.influxdata.com/debian stable InRelease Hit:4 http://deb.debian.org/debian-security bookworm-security InRelease Hit:5 https://deb.nodesource.com/node_18.x nodistro InRelease Reading package lists... Pending Updates: 0 *** Listening Ports *** Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 127.0.0.11:42087 0.0.0.0:* LISTEN 0 69068993 - tcp6 0 0 :::8081 :::* LISTEN 1000 69072792 - udp 0 0 127.0.0.11:41594 0.0.0.0:* 0 69068992 - *** Log File - Last 25 Lines *** 2023-10-26 21:17:14.559 - info: host.iobroker2 instance system.adapter.admin.0 started with pid 840 2023-10-26 21:17:14.561 - info: host.iobroker2 Delete state "system.host.iobroker2.versions.npmNewestNext" 2023-10-26 21:17:14.562 - info: host.iobroker2 Delete state "system.host.iobroker2.versions.nodeCurrent" 2023-10-26 21:17:14.563 - info: host.iobroker2 Some obsolete host states deleted. 2023-10-26 21:17:15.057 - info: admin.0 (840) starting. Version 6.11.0 in /opt/iobroker/node_modules/iobroker.admin, node: v18.18.2, js-controller: 5.0.14 2023-10-26 21:17:15.072 - info: admin.0 (840) requesting all objects 2023-10-26 21:17:15.251 - info: admin.0 (840) received all objects 2023-10-26 21:17:15.340 - info: admin.0 (840) Request actual repository... 2023-10-26 21:17:15.348 - info: admin.0 (840) socket.io server listening on port 8081 2023-10-26 21:17:15.349 - info: admin.0 (840) http server listening on port 8081 2023-10-26 21:17:15.349 - info: admin.0 (840) Use link "http://127.0.0.1:8081" to configure. 2023-10-26 21:17:15.497 - info: host.iobroker2 Updating repository "stable" under "http://download.iobroker.net/sources-dist.json" 2023-10-26 21:17:15.574 - error: admin.0 (840) Cannot update news: TypeError: newNews.forEach is not a function 2023-10-26 21:17:16.743 - info: host.iobroker2 Updating repository "beta" under "http://download.iobroker.net/sources-dist-latest.json" 2023-10-26 21:17:18.313 - info: admin.0 (840) Repository received successfully. 2023-10-26 21:17:18.581 - info: host.iobroker2 instance system.adapter.backitup.0 started with pid 879 2023-10-26 21:17:19.016 - info: backitup.0 (879) starting. Version 2.8.7 in /opt/iobroker/node_modules/iobroker.backitup, node: v18.18.2, js-controller: 5.0.14 2023-10-26 21:17:19.038 - info: backitup.0 (879) [iobroker] backup will be activated at 02:40 every 1 day(s) 2023-10-26 21:17:19.888 - info: admin.0 (840) ==> Connected system.user.admin from ::ffff:192.168.1.98 2023-10-26 21:17:22.577 - info: host.iobroker2 instance system.adapter.awtrix-light.0 started with pid 894 2023-10-26 21:17:22.998 - info: awtrix-light.0 (894) starting. Version 0.9.2 in /opt/iobroker/node_modules/iobroker.awtrix-light, node: v18.18.2, js-controller: 5.0.14 2023-10-26 21:17:23.028 - info: awtrix-light.0 (894) Starting - connecting to http://192.168.0.111:80/ 2023-10-26 21:17:23.052 - info: awtrix-light.0 (894) error ENETUNREACH from stats: connect ENETUNREACH 192.168.0.111:80 2023-10-26 21:17:44.896 - info: admin.0 (840) <== Disconnect system.user.admin from ::ffff:192.168.1.98 admin 2023-10-26 21:18:04.555 - info: admin.0 (840) ==> Connected system.user.admin from ::ffff:192.168.1.98
======================= SUMMARY ======================= v.2023-10-10 model name : Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz Kernel : x86_64 Userland : amd64 Docker : v9.0.1 Installation: Docker Kernel: x86_64 Userland: amd64 Timezone: Etc/UTC User-ID: 0 X-Server: false Pending OS-Updates: 0 Pending iob updates: 2 Nodejs-Installation: /usr/bin/nodejs v18.18.2 /usr/bin/node v18.18.2 /usr/bin/npm 9.8.1 /usr/bin/npx 9.8.1 /usr/bin/corepack 0.19.0 Recommended versions are nodejs 18.18.2 and npm 9.8.1 Your nodejs installation is correct MEMORY: total used free shared buff/cache available Mem: 16G 6.0G 388M 108M 10G 10G Swap: 4.3G 16M 4.3G Total: 20G 6.0G 4.7G Active iob-Instances: 4 Active repo(s): stable, beta ioBroker Core: js-controller 5.0.14 admin 6.11.0 ioBroker Status: iobroker is running on this host. At least one iobroker host is running. Objects type: redis States type: redis Status admin and web instance: + system.adapter.admin.0 : admin : iobroker2 - enabled, port: 8081, bind: 0.0.0.0, run as: admin Objects: 202 States: 128 Size of iob-Database: 20M /opt/iobroker/iobroker-data/objects.jsonl 404K /opt/iobroker/iobroker-data/states.jsonl =================== END OF SUMMARY ====================
-
@marc-berg sagte in iob diag - Skript:
Ist eine kleine Test-Installation. Hoffe, das reicht.
Ja, ich will nur mal sehen was auf dem Docker nicht funktioniert und das dann ausklammern.
Danke schön!
-
Hallo zusammen,
ich versuche gerade einzugrenzen warum ich nicht von node.js 18.17 auf die 18.18 komme.
Leider bekomme ich das Skript so nicht ausgeführt, weil er das Kennwort für den ioBroker user verlangt.Ich melde mich via. "normal" Account und SSH an. Wechsle dann auf den root, weil der normal Account keine Rechte hat und führe das Skript wie folgt aus:
root@ioBroker:/home/administrator# sudo --user=iobroker iob diag
Wenn ich es mit dem administrator ausführe, steht dort, dass dieser keine Rechte hat im Namen von iobroker etwas auszuführen.
Was mache ich hier falsch?
Grüße
-
@hc-yami Also wenn du es normal aufgesetzt hast dann sollte sudo für deinen user eingerichtet sein und du kannst das skript normal starten und er fragt nach dem Passwort des users
-
@apollon77 die Installation ist leider schon sehr lange her. Nutze ioBroker schon seit den anfängen.
Ich denke die Installation war durch eine damalige Vorlage auf der Webseite.Wenn ich das Skript via. "normalen" User, in meinem Fall administrator starte, bekomme ich folgende Meldung:
administrator@ioBroker:~$ sudo iob fix [sudo] Passwort für administrator: Leider darf der Benutzer administrator »/usr/bin/iob fix« als root auf ioBroker nicht ausführen.
Starte ich das Skript als root, erhalte ich folgende Meldung:
root@ioBroker:/home/administrator# iob diag This script must not be run as root! Please use your standard user!
iob fix hatte ich schon ausgeführt. Auch ein reboot ist durch.
-
-
@thomas-braun said in iob diag - Skript:
groups
schön, dass es die kleinen Dinge sind.
Hab den Nutzer nun über
su - usermod -aG iobroker administrator
hinzugefügt.
administrator@ioBroker:~$ groups administrator cdrom floppy audio dip video plugdev netdev iobroker
Leider darf er dadurch immer noch nicht:
administrator@ioBroker:~$ sudo iob diag [sudo] Passwort für administrator: Leider darf der Benutzer administrator »/usr/bin/iob diag« als root auf ioBroker nicht ausführen.
-
-
@hc-yami sagte in iob diag - Skript:
Leider darf er dadurch immer noch nicht:
Logisch. Der ist ja auch nicht in der Gruppe
sudo
drin.Als root:
usermod -aG sudo administrator
Und dann NIE, NIE, NIE MEHR direkt als root herumkaspern.