Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

xxd im root cronjob

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
SuperPCFan
Newbie
Newbie
Beiträge: 4
Registriert: 1. Apr 2021, 14:17

xxd im root cronjob

Beitrag von SuperPCFan »

Hallo Forum,

ich würde gerne den xxd Befehl im root Cronjob einsetzen.
Das System ist "Raspbian GNU/Linux 10(buster)"

Mein Script soll

Code: Alles auswählen

#!/bin/bash
rm /home/user/hexfile.bin
xxd -r -ps /home/user/hexfile.dat /home/user/hexfile.bin
ausführen um eine String Hex Datei in eine binär Hex datei umzuwandlen. Bei der Ausführung lenke ich die stderr Ausgabe in ein .log File um.

Wenn ich dieses Script im Terminal des lokalen Users ausführe, funktioniert es. (log unauffällig)
Wenn ich dieses Script im Cronjob des lokalen Users ausführe, funktioniert es. (log unauffällig)
Wenn ich dieses Script im Cronjob von Root ausführe, steht im Log:

Code: Alles auswählen

...
Usage:
	xxd [options] [infile [outfile]]
...	
Da der Scriptparser mir die Syntax-Hilfe ausgibt, gehe ich davon aus der Parser die Syntax nicht interpretieren konnte. Er sagt mir nur leider nicht genau warum. Ich vermute, dass es an einer der Environment Variablen liegt. Aber die Standardtipps zu diesem Problem wie:

Code: Alles auswählen

. /home/user/.profile
oder

Code: Alles auswählen

BASH_ENV=/home/user/.profile
oder

Code: Alles auswählen

sudo -H -u user bash -c 'command'
haben die aktiven Environment Variablen bisher kein Stück verändert. Ich habe

Code: Alles auswählen

env > /home/user/cronEnv
eingebaut um das zu monitoren.

Gibt es einen Tipp um das Problem gezielter anzugehen als diese generellen Tipps die leider doch nicht so generell sind?
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1310
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: xxd im root cronjob

Beitrag von marce »

... und Du bist sicher, daß

Code: Alles auswählen

/home/user/hexfile.dat
existiert?
(kannst Du ja im Script vorher abprüfen und ggf. auch mal rausloggen lassen)
SuperPCFan
Newbie
Newbie
Beiträge: 4
Registriert: 1. Apr 2021, 14:17

Re: xxd im root cronjob

Beitrag von SuperPCFan »

Ich habe

Code: Alles auswählen

if [ ! -f /home/user/hexfile.dat ]; then
echo "scheisse!"
fi
in das Script eingebaut.

Im Log erfolgt keine Ausgabe des Echo. Ich würde also sagen, dass die Datei /home/user/hexfile.dat da ist.
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1310
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: xxd im root cronjob

Beitrag von marce »

... und Du bist Dir sicher, daß Du 100% das gleiche Script ausführst?

Weil die Doku (zumindest die Online, die ich gerade gelesen habe) der Meinung ist, daß Du entweder verwenden sollst oder, wenn Du wirklich , also

Code: Alles auswählen

-p -s
meinst, dem -s noch einen passenden Parameter mitgeben solltest...
SuperPCFan
Newbie
Newbie
Beiträge: 4
Registriert: 1. Apr 2021, 14:17

Re: xxd im root cronjob

Beitrag von SuperPCFan »

Ich habe zu diesem Punkt nur lauter widersprüchliche Doku gesehen.
In macher Doku steht, dass man unbedingt -ps (ohne Parameter und mit nur einem "-") benutzen soll.
In wieder anderer Doku steht, das man -p benutzen soll.
In wieder anderer Doku steht, dass nur eine einzige Option erlaubt ist. (was ja auch blödsinn ist, wenn man xxd so benötigt wie ich)

Kann sein, das ich manche Kompination noch nicht probiert habe.
Aber es ist auf jeden Fall das gleiche Script, dass lokal funktioniert(die .bin Datei wird korrekt erstellt) und unter Root nicht.

Aufgefallen ist mir noch, dass das Systax-Highlighting xxd nicht erkennt. Der Befehl scheint "weniger-standard" zu sein als z.B. "rm".

Ich kann ja nochmal ein paar -, --, p, s, ps Kombinationen durchprobieren. :???:
SuperPCFan
Newbie
Newbie
Beiträge: 4
Registriert: 1. Apr 2021, 14:17

Re: xxd im root cronjob

Beitrag von SuperPCFan »

Ich möchte irgendwen erwürgen....wenn ich nur wüsste wen.... :zensur: :D

Das Problem ist das "-". Irgendwie ist in dem Script nicht das für Linux üblich kurze "-" enthalten gewesen.
Sondern das in Windows übliche längere "-".

Offenstichtlich ist das nicht nur ein (unscheinbarer) Unterschied in der Anzeige, sondern auch in dem zugrundeliegenden Keycode:
https://www.punctuationmatters.com/the- ... inus-sign/

Die Optionen mit dem längeren "-" haben den Parser verwirrt....
Danke für die Mühe.
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1310
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: xxd im root cronjob

Beitrag von marce »

Vermutlich ein Phänomen / Kombination von Copy-Paste aus einer Website und inzwischen meist funktionierender UTF-8-Unterstützung aller beteiligten Komponenten :-)

-> Ich mach bei sowas immer den Umweg über einen unverfänglichen Editor, der einem sowas auf Wunsch direkt anzeigt...
Antworten