Beiträge von BillBeaver

    2. Möglichkeit

    Ich bin jetzt erst auf die Antwort aufmerksam geworden, vielen Dank. Ich bin mit der Methode nicht vertraut, aber bei allem, was ich in den letzten Wochen hinsichtlich der Einbindung der Datenbank gelernt habe, bin ich recht zuversichtlich. Werde das mal ausprobieren.

    Zwischenzeitlich bin ich auf eine alternative, komfortable Lösung gekommen:
    Ein Appleskript, das den Hyperlink aus dem aktiven Safaritab abholt, zerlegt, und einen festgelegten smb-Pfad vor den Dateinamen setzt und schließlich diese Datei mit preview.app öffnet.
    Das bedeutet, daß ich das pdf im zunächst Browser öffne. Wenn ich den Bedarf sehe, es zu bearbeiten, rufe ich das Skript auf.
    Das Skript lässt sich ganz angenehm über "Kurzbefehle" entweder in der Menuleiste des Betriebssystems anpinnen und/oder als Favorit in die Favoritenleiste des Browsers packen. "Kurzbefehle" bietet da die Option "shortcuts://run-shortcut?name=[name des kurzbefehls]" als URL an.
    An der Safari-Lösung ist ein klein wenig lästig, daß bei jedem Aufruf die Abfrage erfolgt, ob der Website der Aufruf eines Kurzbefehls erlaubt werden soll. Vielleicht kann man das noch abstellen.
    Ich hänge das Skript mal an, vielleicht interessiert sich jemand dafür:


    :)

    das was du da vorhast nicht gehen kann

    Danke, stimmt. Mir war nicht klar, daß exec() Programme auf dem Server aufruft und nicht auf dem Client. Habe halt keine Ahnung.

    Ich will jetzt versuchen, die zu öffnenden Dateien mit FTP zu verlinken. Wenn die Clients im lokalen Netzwerk mit FTP angebunden sind, kann man die Bearbeitung mit Preview.app vielleicht über den Browser initiieren.

    TVS 872-XT

    QTS 5.1.5.2679

    QTS/Apps auf Raid1

    Nutzerdaten auf Raid 6


    Webserver stellt eine Seite bereit, auf der Dokumente verlinkt sind, die im öffentlichen Bereich des Webservers abgelegt sind. Bei Aufruf des Links öffnet der Browser ein neues Fenster mit dem Dokument.

    Die Dokumente sind im lokalen Netzwerk verfügbar, das Verzeichnis ist als Netzlaufwerk an die Rechner (MacOS) angebunden. Die Dokumente können auf diesem Wege mit der Vorschau-App oder einem anderen Programm geöffnet und bearbeitet werden.


    Die Webseite soll nunmehr Links erhalten, die bewirken, daß die verlinkte Datei mit preview.app oder pages.app geöffnet werden. Dazu habe ich folgende Vorschläge erfolglos ausprobiert, wobei es erstmal darum ging, überhaupt eine Anwendung aus eine Website heraus zu öffnen:


    1. - Rückmeldung

    Code
    "Return value: NULL"
    PHP
    <?php
    // Rückgabewert anzeigen
    echo "Return value: $return";
    exec('unset DYLD_LIBRARY_PATH ;');
    putenv('DYLD_LIBRARY_PATH');
    putenv('DYLD_LIBRARY_PATH=/usr/Applications');
    $voila = shell_exec("open -a pages.app");
    var_dump($voila);
    ?>

    2. - Rückmeldung

    Code
    "array(0) { } Return value: 127"
    PHP
    <?php
    $applicationPath = "/System/Applications/Preview.app";
    $command = "open \"$applicationPath\"";
    exec($command, $output, $return);
    var_dump($output);
    echo "Return value: $return";
    ?>

    Was kann man tun? Danke vorab,

    Ob's wirklich funktioniert, musst du selbst ausprobieren. ;)

    Irgendwann hatte ich die Funktion im Wesentlichen verstanden, aber nicht zum Laufen gebracht. Nach etlichem Hin und Her bin ich hier gelandet und das funktioniert tatsächlich für mein Python-Skript:

    Danke für die Unterstützung.


    gelöst. Doch nicht gelöst. Das Skript meldet "Prozess entkoppelt" aber psps aux | grep ... zeigt an, daß der Prozess noch an dem initiierenden Nutzer hängt.

    TVS 872-XT

    QTS 5.1.5.2679

    QTS/Apps auf Raid1

    Nutzerdaten auf Raid 6


    Dem NAS werden über einen Freigabeordner regelmäßig Dateien übergeben, die dann automatisiert verarbeitet werden (verschoben, umbenannt). Manche der Dateien werden im Zuge dessen auch bewußt gelöscht. Es kann passieren, daß das ungewollt passiert.

    Ich suche nach einer Lösung, um Kopien aller zugegangener Dateien wenigstens für ein paar Monate auf Sicherung zu haben.


    Ich habe versucht, das mit Sicherungsaufträgen in HBS zu realisieren, bin mir aber jetzt nicht mehr sicher. Es ist mein Eindruck, daß HBS rücksichtslos synchronisiert, heißt, daß es meine gelöschten Dateien auch aus der Sicherung entfernt. Das ist schade. Bediene ich HBS da falsch oder benötige ich eine andere Lösung?

    Danke vorab,

    werde das mal ausprobieren, vielen dank


    Das ist bei mir so, daß ein sh-Skript, daß per runlast aufgrufen wird, parallel 3 Python-Skripte startet. Um diese geht es mir. Muss ich in deinem Vorschlag das sh oder die Python hinterlegen. Wenn letztere, kann ich das in einer MeinScript.sh realisieren oder benötige ich dann drei davon?

    TVS 872-XT

    QTS 5.1.5.2679

    QTS/Apps auf Raid1

    Nutzerdaten auf Raid 6


    Ich möchte mit einem GUI oder anderweitig komfortabel den Status von Prozessen und Variablen abfragen.


    Entwickelt aus völliger Ahnungslosigkeit und mit Unterstützung von Foristen und ChatGPT: Beim Systemstart werden per runlast und sh-Skript verschiedene Python-Skripte aufgerufen. Diese überwachen Verzeichnisse (Freigabeordner). Wenn einem Verzeichnis eine Datei hinzugefügt wird, verschiebt der Prozess die Datei an ihren endgültigen Speicherort und legt in einer MySQL DB (MariaDB 10; direkt die App, keine Containerlösung) einen Datensatz an, und befüllt, abhängig vom Dateinamen, bestimmte Felder. Unter anderem hinterlegt es einen Link zu der gespeicherten Datei.

    Auf dem Webserver sind php-Dateien hinterlegt, die ich ansprechen, um den Inhalt der Datenbank per Browser abzurufen.


    Das alles funktioniert eigentlich schon ganz gut. Gelegentlich verstolpert sich aber das Konstrukt, insbesondere, wenn ich viele Dateien auf einmal an die Freigabeordner übergebe. Dann bleiben die Skripte stecken, bis sie wieder neu gestartet werden. Daher folgende Fragen:


    Wann immer ich an dem System arbeite und die Prozesse per ssh aktiviere, stoppen sie bei Beendigung der Terminalverbindung. Ich starte jedesmal das NAS neu, um die Prozesse per runlast dauerhaft zu aktivieren. Gibt es dafür eine bessere Lösung?


    Gibt es ein GUI oder eine ähnlich komfortable Lösung, um sich über den Status der einzelnen Prozesse zu informieren (wartet auf Eingabe, beendet etc.) bzw ein GUI, um den aktuellen Wert der Variablen abzufragen, die durch die php Skripte belegt werden?


    Danke vorab,

    python3 mit kompletten Pfad anzugeben

    Danke. Da wüßte ich gar nicht, wo ich suchen soll. Ht das hier etwas damit zu tun?:

    Code
    "# . /etc/profile.d/python3.bash"


    Ich hatte in zahlreichen Beiträgen davon gelesen, daß autorun.sh abgearbeitet wird vor

    Code
    "QPKG re-integration during QTS NAS bootup"

    Ich hatte auch versucht, das mittels "sleep 600" in der autorun.sh oder einem nachgelagertem Shell-Skript zu lösen, aber das war alles erfolglos.


    Zu dem Python: Ich habe das "watchdog"-Modul eingebunden. QTS Appstore(?) bietet ein Python 2.x und ein 3.x. Watchdog erfordert 3.x. Das habe ich auch installiert. Aus irgendwelchen Gründen ist aber o.a. Befehl

    (/etc/profile.d...) erforderlich, sonst bekomme ich nach python3 ... eine

    Code
    "no such command"

    Fehlermeldung zurück.

    TVS 872-XT

    QTS 5.1.5.2645

    QTS/Apps auf Raid1

    Nutzerdaten auf Raid 6


    Im Ergebnis soll beim Starten des NAS ein Skript gestartet werden, welches ein Verzeichnis überwacht, zugehende Dateien umbenennt und in einer MySQL-Datenbank einen Datensatz anlegt, der u.a. den Link zu der Datei enthält.

    Code: autorun.sh
    /share/CE_CACHEDEV1_DATA/autostart/beispiel-1.sh
    Code: /share/CE_CACHEDEV1_DATA/autostart/beispiel-1.sh
    sleep 600
    . /etc/profile.d/python3.bash
    python3 /share/CE_CACHEDEV1_DATA/autostart/Pythonskript.py

    /share/CE_CACHEDEV1_DATA/autostart/Pythonskript.py:

    Überwacht Verzeichnis und benennt eingehende Dateien um


    Die 600 Sekunden sollen dem System Zeit geben, Python zu laden, bevor das Pythonskript.py ausgeführt wird.


    Wenn ich /tmp/config mounte und autorun.sh manuell ausführe, funktioniert es.


    Nach dem unmount und dem Neustart des Systems scheint es einen Bruch zischen der autorun.sh und der beispiel-1.sh zu geben. Die Pythonskript.py wird nicht automatisch aufgerufen, nur wenn ich beispiel-1.sh manuell per Terminal starte.


    Vorschläge? Danke!


    gelöst.


    • Systemsteuerung/Hardware - automatischen Start ... deaktiviert
    • "runlast" installiert
    • Das Paket legt Verzeichnisse an. Skripte, die in diesen Verzeichnissen hinterlegt werden, ruft runlast beim Systemstart erst nach QPKG re-Integration
    • einfach einzubinden

    TVS 872-XT

    QTS 5.1.5.2645

    QTS/Apps auf Raid1

    Nutzerdaten auf Raid 6


    Im Ergebnis soll beim Starten des NAS ein Skript gestartet werden, welches ein Verzeichnis überwacht, zugehende Dateien umbenennt und in einer MySQL-Datenbank einen Datensatz anlegt, der u.a. den Link zu der Datei enthält.


    Das Pythonskript für die Überwachung funktioniert schon, gestartet per SSH.


    Als nächstes habe ich versucht, das Skript in den Systemstart einzubinden. Die Bearbeitung der autorun.sh ist hier ganz gut beschrieben. Das ist mir auch gelungen:

    Autorun.sh konfigurieren.


    Dann hat sich die Frage gestellt, wo die zu startenden Skripte abzulegen sind. Da fand ich in einem Forum die Empfehlung "/share/HDA_DATA/autostart", habe also ein Unterverzeichnis "autostart" angelegt und dort alle skripte abgelegt, die in der autorun.sh aufgerufen werden.


    Nach dem Neustart war das Verzeichnis "/share/HDA_DATA/" leer. Das scheint normal zu sein.


    Kann mir jemand sagen, wo ich die Skripte ablegen muss? Danke.

    • [/mnt/ext/opt/mariadb/data/] - data mit rmdir entfernt
    • [/mnt/ext/opt/mariadb/dump] - Verzeichnis "dump" nicht vorhanden
    • [ln -s /share/CE_CACHEDEV1_DATA/.mariadb10/data data] ausgeführt, danach erschien in dem Verzeichnis ein "data@"
    • im Wurzelverzeichnis [sudo chmod -R 777 mnt/ ] ausgeführt, ohne Fehlermeldung, bekomme aber nach

      /mnt/ext/opt/mariadb/bin/mysqld start 
    • wieder folgendes zurück:
    Code
    Warning: World-writable config file '/etc/my.cnf' is ignored
    231205 23:54:23 [Note] /mnt/ext/opt/mariadb/bin/mysqld (mysqld 5.5.57-MariaDB) starting as process 15857 ...
    231205 23:54:23 [Warning] Can't create test file /mnt/ext/opt/mariadb/data/XXXXX.lower-test
    /mnt/ext/opt/mariadb/bin/mysqld: Can't change dir to '/mnt/ext/opt/mariadb/data/' (Errcode: 13)
    231205 23:54:23 [ERROR] Aborting
    231205 23:54:23 [Note] /mnt/ext/opt/mariadb/bin/mysqld: Shutdown complete
    • weiteres Administratorenkonto auf dem NAS erstellt
    • Zugriff auf Freigabeordner "Web" gewährt (da liegt das PHPMyAdmin)
    • mit dem neuen Nutzer per ssh angemeldet
    • /mnt/ext/opt/mariadb/bin/mysqld start
    • Ergebnis:
    Code
    231205  0:16:18 [Note] /mnt/ext/opt/mariadb/bin/mysqld (mysqld 5.5.57-MariaDB) starting as process 14431 ...
    231205  0:16:18 [Warning] Can't create test file /mnt/ext/opt/mariadb/data/XXXX.lower-test
    231205  0:16:18 [ERROR] mysqld: File './mysql-bin.index' not found (Errcode: 13)
    231205  0:16:18 [ERROR] Aborting
    231205  0:16:18 [Note] /mnt/ext/opt/mariadb/bin/mysqld: Shutdown complete
    • Die Suche nach mysql-bin.index ( find / -dateiname) mit dem neuen Admin blieb erfolglos (permission denied in allen Verzeichnissen)
    • Die selbe Suche mit sudo war erfolgreich:
    • /share/CE_CACHEDEV1_DATA/.mariadb10/data/mysql-bin.index
    • Ich habe nach Möglichkeiten gesucht, dem neuen Administrator Rechte zuzuweisen (chmod irgendwas?), wüsste aber nicht, welche Verzeichnisse das umfassen müsste und wie der Befehl dann im Einzelnen aussieht.
    Code
    Can't change dir to '/mnt/ext/opt/mariadb/data/' (Errcode: 2)

    Das Verzeichnis /data existierte nicht. Ich habe es mit mkdir angelegt. Warum, weiß ich nicht.


    Hast du mysqld start mit vorangestelltem sudo probiert?

    Ja, Ergebnis nunmehr:

    Code
    231202  2:20:13 [Note] /mnt/ext/opt/mariadb/bin/mysqld (mysqld 5.5.57-MariaDB) starting as process 9627 ...
    /mnt/ext/opt/mariadb/bin/mysqld: Please consult the Knowledge Base to find out how to run mysqld as root!
    231202  2:20:13 [ERROR] Aborting
    231202  2:20:13 [Note] /mnt/ext/opt/mariadb/bin/mysqld: Shutdown complete

    Danke soweit. Nochmal zusammenfassend zum Verständnis:

    • Ich möchte MariaDB mittels PHPMyAdmin verwalten, was schon leidlich funktioniert.
    • Anthracite empfahl eine zeitgesteuerte Sicherung der Datenbank mittels Cronjob, um nach einem Firmwareupdate des NAS und möglichen Kompatibilitätsproblemen weiterhin Zugriff auf die DB zu haben,
    • Zunächst versuche ich, den Sicherungsbefehl direkt zu übermitteln, bevor ich daraus eine zeitgesteuerte Anweisung mache
    • /usr/local/mysql/bin/mysqldump -u [Name eines Nutzers der DB mit allen Rechten] -[Passwort dieses Nutzers] [Name der zu sichernden Datenbank] >dump.sql führt mich zu
    Code
    mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" when trying to connect
    • /mnt/ext/opt/mariadb/bin/mysqladmin -u root -p status führt mich zu "
    Code
    /mnt/ext/opt/mariadb/bin/mysqladmin: connect to server at 'localhost' failed
    error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
    Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!"
    • /mnt/ext/opt/mariadb/bin/mysqld start endet in
    Code
    231129  0:07:46 [Note] /mnt/ext/opt/mariadb/bin/mysqld (mysqld 5.5.57-MariaDB) starting as process 7148 ...
    231129  0:07:46 [Warning] Can't create test file /mnt/ext/opt/mariadb/data/872XT.lower-test
    /mnt/ext/opt/mariadb/bin/mysqld: Can't change dir to '/mnt/ext/opt/mariadb/data/' (Errcode: 2)
    231129  0:07:46 [ERROR] Aborting
    231129  0:07:46 [Note] /mnt/ext/opt/mariadb/bin/mysqld: Shutdown complete
    • Die Statusabfrage und das mysqld start habe ich versucht nach allem, was ich auf der von Athracite verlinkten Seite gelesen hatte.
    • Aber ist es nicht so, daß der Datenbankserver laufen muss, wenn die App auf dem NAS läuft? Siehe Abbildung
    • eine Idee noch: Die Statusabfrage sucht /tmp/mysql.sock,; die MariaDB 10 App gibt dagegen an "Domänen-Socket: /var/run/mariadb10.sock"; wie übergebe ich denn das der Statusabfrage?

    Mod: Unnötiges Direktzitat entfernt! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen


    Habe ich verstanden danke. Jetzt glaube ich, daß ich dem NAS noch irgendwie einen SQL-Pfad beibiegen muss, um die mysqldump - command not found Meldung zu überwinden.


    Gibt es keine einfachere Lösung, zB. mit Bordmitteln, um ein Alltagsproblem wie die regelmäßige Sicherung einer Datenbank zu organisieren?


    um Gottes Willen:


    ssh:


    /mnt/ext/opt/mariadb/bin/mysqldump -u root -ppassword --force --all-databases >dump.sql


    führt zu :


    Code
    mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" when trying to connect