[gelöst] debian bash script read content from website

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: debian bash script read content from website

Beitrag von tobo » 06.11.2024 08:32:02

In der Variablenzuweisung mit "export" muss - entgegen meiner gestrigen Behauptung - doch ein && oder ; Trenner eingebaut werden. Bei der reinen Variablenzuweisung (ohne export) darf das nicht sein.
Ansonsten, auf den Vorschlag von 4A4B hätte man auch eigentlich selbst kommen können!? Die Fehlerausgabe ist dann unumgelenkt in den Systemmails zu finden.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian bash script read content from website

Beitrag von joe2017 » 06.11.2024 09:27:15

Gute Idee,

das habe ich soeben gemacht. Leider bleibt die Datei leer.

Code: Alles auswählen

* 6-18 * * 1-5	bash -lc 'DISPLAY=:0	/path/to/script.sh >/path/to/log.txt'

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: debian bash script read content from website

Beitrag von 4A4B » 06.11.2024 09:58:28

Es fehlt noch die Fehlerausgabe, die leitest du mit dem "2>&1" in die gleiche Datei:

Code: Alles auswählen

* 6-18 * * 1-5	bash -lc 'DISPLAY=:0	/path/to/script.sh >/path/to/log.txt  2>&1'

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian bash script read content from website

Beitrag von joe2017 » 06.11.2024 10:15:52

Jetzt habe ich folgende Meldung im Log stehen:

Code: Alles auswählen

Authorization required, but no authorization protocol specified
Error: cannot open display: :0
Meine Syntax war folgende:

Code: Alles auswählen

* 6-18 * * 1-5	USER	bash -lc 'export DISPLAY=:0 && /path/to/script.sh >/path/to/log.txt 2>&1'

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: debian bash script read content from website

Beitrag von uname » 06.11.2024 10:22:30

Ich habe mir gerade diesen Thread zum ersten mal durchgelesen.
joe2017 hat geschrieben:'export DISPLAY=:0
joe2017 hat geschrieben:Authorization required, but no authorization protocol specified
Error: cannot open display: :0
Ich weiß ja nicht wie das "display" in dein Befehl geraten ist. Aber das brauchst du maximal, wenn das Programm "script.sh" irgendwelche grafischen Dinge tut wie z. B. ein grafisches Terminal oder einen Browser öffnen. Normalerweise inkl. "wget" brauchst du das alles nicht. Dann hast du auch nicht mehr den Fehler.

tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: debian bash script read content from website

Beitrag von tobo » 06.11.2024 10:25:19

joe2017 hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 10:15:52
Jetzt habe ich folgende Meldung im Log stehen:

Code: Alles auswählen

Authorization required, but no authorization protocol specified
Error: cannot open display: :0
Meine Syntax war folgende:

Code: Alles auswählen

* 6-18 * * 1-5	USER	bash -lc 'export DISPLAY=:0 && /path/to/script.sh >/path/to/log.txt 2>&1'
Ist die Frage denn inzwischen nicht, was bei WAYLAND_DISPLAY für Fehler kommen?

tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: debian bash script read content from website

Beitrag von tobo » 06.11.2024 10:26:41

uname hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 10:22:30
Ich habe mir gerade diesen Thread zum ersten mal durchgelesen.
Was hast du denn da gelesen, die Überschrift?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian bash script read content from website

Beitrag von joe2017 » 06.11.2024 10:29:44

Das ist genau mein aktuelles Problem. Ich möchte den Firefox öffnen.
Wenn ich das Script im angemeldeten User im Terminal ausführe, funktioniert auch alles. Wenn das Script via cron ausgeführt wird, funktioniert es leider nicht.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian bash script read content from website

Beitrag von joe2017 » 06.11.2024 10:44:13

Ich habe die Lösung gerade gefunde!!!

Ich habe in meinem Script folgende exports eingetragen:

Code: Alles auswählen

export DISPLAY=:0
export WAYLAND_DISPLAY=wayland-0
export XDG_RUNTIME_DIR=/run/user/1001

tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: debian bash script read content from website

Beitrag von tobo » 06.11.2024 10:47:21

Und wie bist du darauf gekommen, gab es entsprechende Fehlermeldungen? Ist der DISPLAY-Export dabei ebenfalls notwendig?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian bash script read content from website

Beitrag von joe2017 » 06.11.2024 10:59:27

Ich habe im Log eine Fehlermeldung zum WAYLAND_DISPLAY export gesehen.
Hier stand etwas von der RUNTIME_DIR.

Ich hab mir die Variable im User angesehen (echo $XDG_RUNTIME_DIR) und als export in mein Script eingefügt.

Ich denke das der DISPLAY export nicht notwendig ist.

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: [gelöst] debian bash script read content from website

Beitrag von uname » 06.11.2024 11:06:02

Tobo hat geschrieben:Was hast du denn da gelesen, die Überschrift?
Ich hatte zwischendurch "curl" gelesen aber "Firefox" überlesen. Aber der Firefox sollte dann erst anschließend geöffnet werden. Somit alles ok. Mein Fehler.

tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: debian bash script read content from website

Beitrag von tobo » 06.11.2024 11:36:04

joe2017 hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 10:59:27
Ich habe im Log eine Fehlermeldung zum WAYLAND_DISPLAY export gesehen.
Hier stand etwas von der RUNTIME_DIR.

Ich hab mir die Variable im User angesehen (echo $XDG_RUNTIME_DIR) und als export in mein Script eingefügt.

Ich denke das der DISPLAY export nicht notwendig ist.
Ich habe bei mir folgende XDG-Ergänzungen in ~/.profile stehen:

Code: Alles auswählen

##Fehlende XDG-Variablen
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_DIRS=/usr/local/share/:/usr/share/
export XDG_CONFIG_DIRS=/etc/xdg
export XDG_RUNTIME_DIR="/tmp/$USER-runtime"
[ -d "$XDG_RUNTIME_DIR" ] || mkdir "$XDG_RUNTIME_DIR"
Muss man halt nur schauen, dass sie wirklich geladen werden, falls man das einbinden möchte.

Antworten