Datei verschieben, wenn vorhanden

ich möchte ein Verzeichnis "überwachen".

Es bestehen je nach Kopierzustand (von ein anderem Script) 2 Zustände.

<dateiname>.iso.tmp => der Zustand ist zu ignorieren, da noch kopiert wird.
<dateiname>.iso => ab hier möchte ich "angreifen"


Bisher sagt mir meine Consoole immer nur sleep obwohl der Befehl "ls /mnt/ssd_auslagerung/*.iso | wc -w" eine 1 ausgibt und somit den mv-Befehl ausführen sollte.
Irgendwas stimmt mit den Kopf nicht.... bin aber schon zu lange an der Sache dran und seh den Wald vor lauter Bäumen nicht.

Brauche mal frisches Hirn ^^

Content-Key: 667557

Url: https://administrator.de/contentid/667557

Ausgedruckt am: 28.07.2021 um 02:07 Uhr

Mitglied: Lochkartenstanzer
Lochkartenstanzer 13.06.2021 um 23:31:44 Uhr
Goto Top
Moin,

müßtest Du in Zeile 5 nicht auf Ungleichheit testen, also

?

lks
Mitglied: HanTrio
HanTrio 13.06.2021 um 23:35:02 Uhr
Goto Top
So auf den ersten Blick - deine if-condition ist genau falsch rum ;)

Also wenn IN_EMPTY, wie du schreibst, mit 1 befüllt wird, ist klar, warum der Vergleich mit "-eq 0" negativ ausfällt, und somit zum "else" Teil gesprungen wird.
Es müsste "-ne 0" (not equal 0) heißen, dann sollte die if-condition greifen, und "then" ausgeführt werden.
Mitglied: it-fraggle
it-fraggle 14.06.2021 um 05:37:14 Uhr
Goto Top
Zitat von @lord-icon:
ich möchte ein Verzeichnis "überwachen".
inotify oder mit systemd
Mitglied: lord-icon
lord-icon 14.06.2021 um 21:32:35 Uhr
Goto Top
So.. leider tut es Script nicht wirklich das was es soll :-( face-sad

Einmal läuft es durch... verschiebt alle Daten und läuft dann auf Fehler.

Ich glaube auch dass ich viel zu viel gebaut habe.
Letzendlich soll es als Cronjob laufen der jede Minute geprüft (ggf. vershcoben) wird.


Wenn die Status_datei.txt vorhanden ist, dann verschiebt gerade ein cronjob die Datei(n).
Klappt soweit auch.

Blöd ist nur, dass mir die Zeile
anzahl=(`ls /mnt/ssd_auslagerung/*.iso | wc -w`)
jede Minute einen Fehler pollt wenn gerade mal KEINE iso-Datei vorhanden ist=> ls: cannot access '/mnt/ssd_auslagerung/*.iso': No such file or directory

Mit @ oder /dev/null 2>&1 komme ich da nicht wirklich weiter. Nicht Kriegsentscheidend... abe vlt. hat einer ja einen Kosmetischen Hinweis ;-) face-wink
Mitglied: lord-icon
lord-icon 14.06.2021 um 21:40:04 Uhr
Goto Top
P.s. als cronjob läuft das Teil auch nicht. Muß ich mir aber morgen anschauen.... 3:30 gehts wieder raus.
Und ja... chmod +x hab ich vorher gemacht.
In den Logs kommt es auch an
Jun 14 21:39:01 system CRON[2923751]: (root) CMD (/home/me/iso-datein_verschieben.sh )
Jun 14 21:39:01 system CRON[2923750]: (CRON) info (No MTA installed, discarding output)
Mitglied: HanTrio
HanTrio 15.06.2021 um 09:06:36 Uhr
Goto Top
Allgemein zum Thema Cronjobs bei Verwendung eines Scripts:

Achte im Zweifelsfall darauf, innerhalb des Scripts nicht nur die üblichen Commands zu verwenden, sondern den absoluten Dateipfad zu den binaries, also zB
anstatt von lediglich

Alternativ kannst du dem Cronjob mitteilen, wo sich die binaries befinden, indem du die PATH Variable innerhalb des Crontabs explizit mitgibst bzw. erweiterst. Hier ganz gut beschrieben:
https://stackoverflow.com/questions/2388087/how-to-get-cron-to-call-in-t ...
https://unix.stackexchange.com/questions/148133/how-to-set-crontab-path- ...

Erfahrungsgemäß ist das DIE Fehlerquelle, wenn ein Script an sich funktioniert, aber nicht als Cronjob laufen will ;)
Mitglied: lord-icon
lord-icon 15.06.2021 um 14:20:29 Uhr
Goto Top
Danke HanTrio,

da waren schon mal hilfeiche Tipps dabei.

Ich hab im Script aber ein Problem gefunden was nicht korrekt umgesetzt wird.
Der Pipe wird nicht umgesetzt

Kann einer mal folgendes in die Shell eingeben:


Ich bekomme hier alle conf Datein angezeigt in etc angezeigt + den Anhang: | wc -w
Der Befehl wird also nicht umgesetzt. Ich finde im Web aber auch nichts.
Schon in allen erdenklichen Hochkommas etc versucht. Greift nicht. " ` '
Mitglied: Lochkartenstanzer
Lochkartenstanzer 15.06.2021 um 14:53:22 Uhr
Goto Top
Zitat von @lord-icon:

Danke HanTrio,

da waren schon mal hilfeiche Tipps dabei.

Ich hab im Script aber ein Problem gefunden was nicht korrekt umgesetzt wird.
Der Pipe wird nicht umgesetzt

Kann einer mal folgendes in die Shell eingeben:


Ich bekomme hier alle conf Datein angezeigt in etc angezeigt + den Anhang: | wc -w
Der Befehl wird also nicht umgesetzt. Ich finde im Web aber auch nichts.
Schon in allen erdenklichen Hochkommas etc versucht. Greift nicht. " ` '



lks
Mitglied: lcer00
lcer00 15.06.2021 aktualisiert um 15:14:21 Uhr
Goto Top
Hallo,
Zitat von @lord-icon:

Kann einer mal folgendes in die Shell eingeben:

kannst Du mal in die Shell eingeben:

Grüße

lcer

PS: und am besten noch:

Mitglied: lord-icon
lord-icon 15.06.2021 aktualisiert um 15:25:58 Uhr
Goto Top
FTW...


Mitglied: Lochkartenstanzer
Lochkartenstanzer 15.06.2021 aktualisiert um 15:35:00 Uhr
Goto Top
Zitat von @lord-icon:

FTW...


Das sind keine "backticks"! da kommt nur

Da kommt nur

Bei mir ist der Pfad zu wc /usr/bin/wc

Irgendwie ist es bei Dir anscheinend verkorkst. (ich habe auch ein Ubuntu 20.04.2 LTS)

lks

PS:
Was sagen denn echo $LC_CTYPE und echo $LANG?
Mitglied: lord-icon
lord-icon 15.06.2021 um 15:40:02 Uhr
Goto Top
lord_icon@system:~$ echo $LC_CTYPE

lord_icon@system:~$ echo $LANG
C.UTF-8
Mitglied: Lochkartenstanzer
Lochkartenstanzer 15.06.2021 aktualisiert um 16:20:15 Uhr
Goto Top
Zitat von @lord-icon:

FTW...



Wenn ich mit Deine Zeile mit od anschaue, kommt das raus:


Bei meiner zeile steht das:



Du hast zwischen wc -c und dem backtick ein zeichen mit dem Code cb 8b drin, statt "backtick" (=60hex ) !

https://ascii.cl/

Achte darauf, welche Zeichen Du wirklich eintippst!

lks
Mitglied: lord-icon
lord-icon 15.06.2021 um 18:17:39 Uhr
Goto Top
Herjee.... auf was für Ideen du alles kommst... mit das in HEX anzeigen zu lassen um unsichtbare Steuerzeichen zu suchen.... da wäre ich in trillionen Jahre nicht drauf gekommen ;-) face-wink

Nachdem ich dein Posting rauskopiert habe... kommt nun tatsächlich ne Zahl raus.

ABER... nun bemängelt er, das ich die Schleife nicht sauber gebildet habe:

/home/lord_icon/iso-datein_verschieben.sh: 4: Syntax error: "(" unexpected (expecting "fi")


Da bin ich aber anderer Meinung.
Aufgeräumt sieht der Code wie folgt aus:
M.E.n sieht das korrekt aus. K.a. was da falsch sein soll.

Unsichtbare Steuerzeichen oder so kann ich dank deines Befehls auch ausschließen.
Das scheint nun zu passen

Mitglied: HanTrio
HanTrio 15.06.2021 um 18:32:31 Uhr
Goto Top
Vielleicht noch eine generelle Anmerkung:

Mach dich mal schlau über die sog. "command substitution":
Die Verwendung von Backticks ist zwar immer noch möglich, aber seit längerer Zeit .. wie sag ich das nett .. quasi obsolet ;)
Anstatt von
kannst (und solltest) du
verwenden.
Siehe auch hier:
https://stackoverflow.com/questions/4708549/what-is-the-difference-betwe ...
https://stackoverflow.com/questions/9449778/what-is-the-benefit-of-using ...
http://mywiki.wooledge.org/BashFAQ/082

Dann ersparst du dir nicht nur die Problematik mit dem hier offensichtlich falschen Zeichen, sondern auch später jede Menge Kopfschmerzen, wenn es an komplexere "nested" commands geht ;)
Mitglied: Lochkartenstanzer
Lochkartenstanzer 15.06.2021 aktualisiert um 18:36:10 Uhr
Goto Top
Probiere mal

oder


lks
Heiß diskutierte Beiträge
question
Zentrale Lösung für Antivirus, Patchmanagement, Monitoring in einem?Andre82msVor 1 TagFrageSicherheits-Tools24 Kommentare

Hallo Zusammen, ich suche schon seit längerem eine gute Lösung, welche ein gut funktionierendes Patchmanagement, Anti-Virenscanner mit EDR sowie ein Monitoring in einem Dashboard beinhaltet ...

question
Signatur-Programm gesuchtArchanVor 1 TagFrageOutlook & Mail20 Kommentare

Hi zusammen, vorab als Info: Wir haben eine Mischung aus Office365 und 2016, sowie einen Exchange 2016 Server. Ich bin nun auf der Suche nach ...

question
Mitarbeiter ab gewisser Uhrzeit am arbeiten hindern gelöst passy951Vor 23 StundenFrageWindows Netzwerk20 Kommentare

Guten Morgen zusammen, ich wurde gestern von unseren Betriebsrat gefragt ob es möglich ist ab z.B. 20 Uhr die Mitarbeiter daran zu hindern zu arbeiten. ...

question
Wie lange kann ein PC in der Domain ohne Kontakt zur Domain betrieben werden?DaxAtDS9Vor 23 StundenFrageNetzwerkmanagement16 Kommentare

Hallo, bis vor einer Woche habe ich einen SBS2011 Server inkl. AD etc. in Betrieb gehabt. Nun habe ich ihn abgeschaltet und nutze einer der ...

question
Mikrotik vs. Unify - Warum mögt Ihr Unify nicht? gelöst tagol.deVor 1 TagFragePeripheriegeräte10 Kommentare

Hallo immer wieder lese ich, das hier auf Administrator.de Mikrotik bevorzugt wird. Aktuell habe ich zuhause 2 AP von Unify + Controller auf einem Rasberry ...

question
Domänencontroller von Windows Server 2016 auf Windows Server 2019 migrierenEstefaniaVor 16 StundenFrageWindows Server24 Kommentare

Hi. Kann mir ein Admin bei folgendem Problem weiterhelfen !? Wir haben insgesamt 5 Domänencontroller, die auf einem Windows Server 2016 laufen. Nun ist es ...

question
Home-Office Laptop kann DNS nicht auflösenLubosNovyVor 1 TagFrageWindows Netzwerk15 Kommentare

Hallo zusammen, Situation: Manche Kolleginnen arbeiten im Home-Office und sind über Sophos SSL Client verbunden. Die Notebooks sind von mir vorbereitet, in die Domänen aufgenommen ...

report
Positive Erfahrung mit VodafoneitebobVor 1 TagErfahrungsberichtFlatrates3 Kommentare

Hallo zusammen, vieles, was ich im Beitrag Erfahrungsbericht Vodafone - Die endlose Vertragsänderung und in Kommentaren lese, deckt sich mit meinen persönlichen Erfahrungen mit Vodafone. ...