Fehlermeldung bei Befehl mktemp

Hans Bear

unsichtbar
Hallo zusammen. Ich benötige etwas Hilfe.

Hintergrund ist folgender: Ich bin gerade dabei Pihole auf meinem Server einzurichten.
Der läuft allerdings mit Slackware 14.2 und Pihole wird auf dieser Platform nicht supported.

Habe es allerdings (nach Anleitung) schon nahezu hinbekommen, allerdings werden meine Listen
nicht heruntergeladen.
Bei jeder einzelner Liste bekomme ich eine Fehlermeldung.
Target: v.firebog.net (Shalla-mal.txt)
mktemp: invalid option -- '-'
Usage: mktemp [-V] | [-dqtu] [-p prefix] [template]
[✓] Status: Retrieval successful
Received empty file: using previously cached list
Ich habe den Codeschnipsel nun isoliert, ich denke das ist der Bösewicht.
Ich bekomms nicht hin das er ohne meckern läuft.
Hier ist er copy und paste direkt aus dem pihole-script :

# Create temp file to store content on disk instead of RAM
patternBuffer=$(mktemp -p "/tmp" --suffix=".phgpb")
mktemp -p "/tmp" funktioniert ohne Probleme, sobald das "--suffix" mitspielt kommt dieser Fehler:
mktemp: invalid option -- '-'

Bin echt ratlos, und auch Google hilft mir absolut nicht weiter.

Das kann doch nur ne Kleinigkeit sein. Bei andern funktioniert es doch auch ohne diese Fehlermeldung.

Erbarmt sich mir wer? Bitte?

voller Hoffnung

Hans
 

Hans Bear

unsichtbar
hab halt schon Anführungszeichen in jeder erdenklichen Konstellation gesetzt.

Hier:
Code:
mktemp -p "/tmp" --suffix=".phgpb"
mktemp: invalid option -- '-'

mktemp -p "/tmp" "--suffix=".phgpb""
mktemp: invalid option -- '-'

mktemp "-p "/tmp"" "--suffix=".phgpb""
mktemp: invalid option -- '-'
 
Zuletzt bearbeitet:

eumel_1

Der Reisende
Code:
mktemp: invalid option -- '-'
Was genau steht denn in deinem Script, es scheint, als ob bei den Optionen (nach dem "--" ohne "") noch ein "-" (ohne "") enthalten ist.
Und auch bei den Anführungszeichen kann man Fehler machen.
 

schwaller

Bekanntes Mitglied
machs mal so:
Code:
mktemp -p "/tmp" XXXXXXXX.phgpb
--suffix=SUFF
append SUFF to TEMPLATE; SUFF must not contain a slash. This
option is implied if TEMPLATE does not end in X

oder anders - wenn das mit dem suffix nicht will, erledgt man das mittels des templates ;)
 
Zuletzt bearbeitet:

Hans Bear

unsichtbar
@eumel_1 schau mal bei meinen Beispielen in der ersten Zeile ist immer mein abgesetztes Kommando.
Da gibts einfach kein einzelnes "-" lasse ich bei den zwei strichen einen weg wird wegen dem "s" von suffix gemeckert.

@schwaller bei deinem Kommando kommt folgendes:
Code:
mktemp -p "/tmp" XXXXXXXX.phgpb
mktemp: cannot create temp file /tmp/XXXXXXXX.phgpb: Invalid argument
Das mit dem Template verstehe ich gerade so auf Anhieb nicht. Aber Danke, ist ein neuer Ansatz.
 

schwaller

Bekanntes Mitglied
ok - dann versuch einmal

Code:
# Create temp file to store content on disk instead of RAM
## patternBuffer=$(mktemp -p "/tmp" --suffix=".phgpb")
patternBuffer=$(mktemp "/tmp/XXXXXXXX.phgpb")
warum? ich hab nicht genau hingesehen, aber du erhälst die meldung
Usage: mktemp [-V] | [-dqtu] [-p prefix] [template]

Heisst, dein mktemp kennt keine Option --suffix

Normal kann man das dann über das template regeln. das ist quase die vorgabe für den dateinamen.
X wird dabei ersetzt durch zufallszeichen
der rest wie . oder aber phgpb bleiben erhalten

sprich aus XXXXX.abc wird dann z.b h5sde.abc
oder aus XXX4meXX.XXccb wird 7tM4me9a.nRccb

du kannst auf komanndoebene gut testen, was geht.
denn der parameter -u gibt dann nur das ergebnis aus - legt aber nichts an (stichwort: dry run)

da das mit dem Template aber ja auch nicht ging?! versuche es mal so:
Code:
# Create temp file to store content on disk instead of RAM
## patternBuffer=$(mktemp -p "/tmp" --suffix=".phgpb")
patternBuffer=$(mktemp -p "/tmp" )
ABER imho wurd ebei pihole nicht explizit etwas mit der Dateiendung angestellt sondern es wurde einfach nur eine Datei benötigt.
Und im Linuxbereich sind Dateiendungen eh nicht ganz so wichtig ;)
 

dodo

Anonymer Universaldilettant
hab halt schon Anführungszeichen in jeder erdenklichen Konstellation gesetzt.
... aber noch keine einfachen Anführungszeichen (') statt der doppelten.
Mein mktemp (GNU coreutils) 8.28 akzeptiert zwar beides ohne Fehlermeldung, ich kann mich aber sehr wohl an Situationen erinnern, in denen einfache Anführungszeichen obligatorisch waren.

Just my
 

eumel_1

Der Reisende
Wenn da eine gestrippte Linux-Version drauf ist, wird so einiges nicht gehen.
Ich kann mich an eine Industriekamera erinnern, da war zwar ein Echtzeit-Linux drauf, dies war aber so extrem gestripped, es war extrem umständlich nur den vi aufzurufen.
 

Hans Bear

unsichtbar
@schwaller ja so gehts dann, thx! nur komisch das mein mktemp anscheinend anders is. könnte das auch an einem nicht richtig konfiguriertem Kernel liegen?

@dodo achsoo. Mist. Ich habe jetzt erstmal die Taste suchen müssen. Ich glaube das Zeichen hab ich noch nie gebraucht.

@eumel_1 das ist n ganz normaler PC mit ganz normalem GNU/Linux.

Danke euch allen.
 

schwaller

Bekanntes Mitglied
nein - wenn man so im embedded bereich unterwegs ist, dann spielt es traditionell eine rolle, wie gross das ganze wird und wie stark speicher benötigt wird. deshalb sind dort häufiger versionen anzutreffen die nicht mit allen optionen, sondern nur mit den benötigten compiliert wurden.

dies scheint bei dem bei dir vorhandenen mktemp der fall zu sein. in einem solchen fall muss man eben gucken, was brauche ich an funktionalität oder kann ich diese auch anders erreichen.
 

Hans Bear

unsichtbar
ich hab ja kein embedded system. Aber Danke, ich schau mir mal an mit welchen Optionen kompiliert wurde.
Wenn überhaupt.. eigentlich läufts ja auch so und ich weiß ja jetzt bescheid.
 
Oben Unten