Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.os.unix.linux.misc > #113846 > unrolled thread

Skript Umleitung fortlaufend nummerieren

Started byDetlef Paschke <schabau@t-online.de>
First post2021-01-07 15:45 +0100
Last post2021-01-08 10:05 +0100
Articles 7 — 4 participants

Back to article view | Back to de.comp.os.unix.linux.misc


Contents

  Skript Umleitung fortlaufend nummerieren Detlef Paschke <schabau@t-online.de> - 2021-01-07 15:45 +0100
    Re: Skript Umleitung fortlaufend nummerieren Thomas Dorner <de.comp.os.unix.linux.misc.210107.dorner@spamgourmet.com> - 2021-01-07 17:00 +0100
      Re: Skript Umleitung fortlaufend nummerieren Detlef Paschke <schabau@t-online.de> - 2021-01-07 18:21 +0100
    Re: Skript Umleitung fortlaufend nummerieren Andreas Karrer <ak-0a@gmx.ch> - 2021-01-07 16:29 +0000
      Re: Skript Umleitung fortlaufend nummerieren Detlef Paschke <schabau@t-online.de> - 2021-01-07 18:12 +0100
    Re: Skript Umleitung fortlaufend nummerieren Marcel Mueller <news.5.maazl@spamgourmet.org> - 2021-01-07 19:55 +0100
      Re: Skript Umleitung fortlaufend nummerieren Detlef Paschke <schabau@t-online.de> - 2021-01-08 10:05 +0100

#113846 — Skript Umleitung fortlaufend nummerieren

FromDetlef Paschke <schabau@t-online.de>
Date2021-01-07 15:45 +0100
SubjectSkript Umleitung fortlaufend nummerieren
Message-ID<rt76pr$8br$1@solani.org>
Hallo,

wieder mal eine kleine Skript Frage von mir.

Ich habe hier ein kleines Skript um demnächst ein paar Festplatten durch
zu testen. Das ist der Hauptbestandteil:

echo -e "$(smartctl -a -d megaraid,$d /dev/bus/1)" > ./smart$((n++)).txt

Bei jedem Aufruf läuft diese Zeile 4 mal durch und erzeugt die
nummerierten Output-Dateien. Soweit so gut.

Nun muss ich das Skript aber mehrfach für verschiedene Festplatten
aufrufen und um mir ein wenig Hin- und Her- Kopieren zu sparen wäre es
natürlich schön, wenn das nummerieren mit Bezug auf die schon
vorhandenen Dateien erfolgt.
Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
der nächst höheren Nummer.

Man kann sicher, aber lässt sich so etwas auch mit wenig Aufwand lösen?

Wie es oft so ist, meist steckt man nur aus Wissbegierde, in die
Problemlösung mehr Zeit, als die Handarbeit gekostet hätte. ;-)

Viele Grüße
Detlef Paschke

-- 
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.dynip.online
Meine "Merkzettel"
http://www.helpdesk.dynip.online

[toc] | [next] | [standalone]


#113849

FromThomas Dorner <de.comp.os.unix.linux.misc.210107.dorner@spamgourmet.com>
Date2021-01-07 17:00 +0100
Message-ID<6elfd4ivp2.fsf@th-dorner.de>
In reply to#113846
Hallo Detlef!

> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
> der nächst höheren Nummer.

So in etwa (wenn die Zeitstempel in der richtigen Reihenfolge sind)?

n=$(ls -tr1 smart*.txt 2>/dev/null | tail -1)
n=${n#smart}
n=${n%.txt}
[ -n "$n" ] || n=0   # oder 1, was immer Dein Anfangswert ist

> Wie es oft so ist, meist steckt man nur aus Wissbegierde, in die
> Problemlösung mehr Zeit, als die Handarbeit gekostet hätte. ;-)

Auf jeden Fall! :-)

Viele Grüße, Thomas
-- 
Adresse gilt nur kurzzeitig!

[toc] | [prev] | [next] | [standalone]


#113855

FromDetlef Paschke <schabau@t-online.de>
Date2021-01-07 18:21 +0100
Message-ID<rt7fv1$rbt$1@solani.org>
In reply to#113849
Am 07.01.2021 um 17:00 schrieb Thomas Dorner:
> Hallo Detlef!

Hallo Thomas,

>> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
>> der nächst höheren Nummer.
> 
> So in etwa (wenn die Zeitstempel in der richtigen Reihenfolge sind)?

Der Zeitstempel zwischen den Aufrufen ist auf jeden Fall gegeben da die
Festplatten getauscht werden müssen. Innerhalb eines Aufruf wenn die
Zeile mehrfach hintereinander mit unterschiedlichen Adressen aufgerufen
wird, kann es knapp werden. (0.1 Sekunden Bereich)

> n=$(ls -tr1 smart*.txt 2>/dev/null | tail -1)
> n=${n#smart}
> n=${n%.txt}
> [ -n "$n" ] || n=0   # oder 1, was immer Dein Anfangswert ist

Schaue ich mir auf jeden Fall auch an.

>> Wie es oft so ist, meist steckt man nur aus Wissbegierde, in die
>> Problemlösung mehr Zeit, als die Handarbeit gekostet hätte. ;-)
> 
> Auf jeden Fall! :-)

Aber Spaß macht es auch, die Skripte speichert man und die eine oder
andere Zeile braucht man mal wo anders.
Danke Dir.

> Viele Grüße, Thomas 

Viele Grüße
Detlef Paschke

-- 
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.dynip.online
Meine "Merkzettel"
http://www.helpdesk.dynip.online

[toc] | [prev] | [next] | [standalone]


#113851

FromAndreas Karrer <ak-0a@gmx.ch>
Date2021-01-07 16:29 +0000
Message-ID<slrnrvedmm.73nu.ak-0a@chimborazo.ee.ethz.ch>
In reply to#113846
* Detlef Paschke <schabau@t-online.de>:

> Ich habe hier ein kleines Skript um demnächst ein paar Festplatten durch
> zu testen. Das ist der Hauptbestandteil:
>
> echo -e "$(smartctl -a -d megaraid,$d /dev/bus/1)" > ./smart$((n++)).txt

Was ist die Absicht bei   echo -e "$(....)"  ? Warum nicht einfach

	smartctl -a -d megaraid,$d /dev/bus/1 > ./smart$((n++)).txt

> Bei jedem Aufruf läuft diese Zeile 4 mal durch und erzeugt die
> nummerierten Output-Dateien. Soweit so gut.
>
> Nun muss ich das Skript aber mehrfach für verschiedene Festplatten
> aufrufen und um mir ein wenig Hin- und Her- Kopieren zu sparen wäre es
> natürlich schön, wenn das nummerieren mit Bezug auf die schon
> vorhandenen Dateien erfolgt.
> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
> der nächst höheren Nummer.

Mit ``[ -e fname ]'' testet man, ob ein Verzeichniseintrag "fname" existiert.
Vor der "smartctl"-Zeile dies einfügen:

	n=0
	while [ -e "smart$n.txt" ]; do ((n++)); done


(wenn die Files ab 1 numeriert sind, natuerlich "n=1").


 - Andi

[toc] | [prev] | [next] | [standalone]


#113854

FromDetlef Paschke <schabau@t-online.de>
Date2021-01-07 18:12 +0100
Message-ID<rt7fel$q9a$1@solani.org>
In reply to#113851
Am 07.01.2021 um 17:29 schrieb Andreas Karrer:
> * Detlef Paschke <schabau@t-online.de>:
> 
>> Ich habe hier ein kleines Skript um demnächst ein paar Festplatten durch
>> zu testen. Das ist der Hauptbestandteil:
>>
>> echo -e "$(smartctl -a -d megaraid,$d /dev/bus/1)" > ./smart$((n++)).txt
> 
> Was ist die Absicht bei   echo -e "$(....)"  ? Warum nicht einfach
> 
> 	smartctl -a -d megaraid,$d /dev/bus/1 > ./smart$((n++)).txt

Das habe ich nur aus einem anderen Skipt raus kopiert wo man das echo
brauchte. Weiß gar nicht mehr warum???
Aber klar ohne echo sollte ja auch gehen.

> 
>> Bei jedem Aufruf läuft diese Zeile 4 mal durch und erzeugt die
>> nummerierten Output-Dateien. Soweit so gut.
>>
>> Nun muss ich das Skript aber mehrfach für verschiedene Festplatten
>> aufrufen und um mir ein wenig Hin- und Her- Kopieren zu sparen wäre es
>> natürlich schön, wenn das nummerieren mit Bezug auf die schon
>> vorhandenen Dateien erfolgt.
>> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
>> der nächst höheren Nummer.
> 
> Mit ``[ -e fname ]'' testet man, ob ein Verzeichniseintrag "fname" existiert.
> Vor der "smartctl"-Zeile dies einfügen:
> 
> 	n=0
> 	while [ -e "smart$n.txt" ]; do ((n++)); done
> 
> 
> (wenn die Files ab 1 numeriert sind, natuerlich "n=1").

Danke, schaue ich mir mal an.

>  - Andi

Viele Grüße
Detlef Paschke

-- 
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.dynip.online
Meine "Merkzettel"
http://www.helpdesk.dynip.online

[toc] | [prev] | [next] | [standalone]


#113856

FromMarcel Mueller <news.5.maazl@spamgourmet.org>
Date2021-01-07 19:55 +0100
Message-ID<rt7leg$dds$2@gwaiyur.mb-net.net>
In reply to#113846
Am 07.01.21 um 15:45 schrieb Detlef Paschke:
> Bei jedem Aufruf läuft diese Zeile 4 mal durch und erzeugt die
> nummerierten Output-Dateien. Soweit so gut.
> 
> Nun muss ich das Skript aber mehrfach für verschiedene Festplatten
> aufrufen und um mir ein wenig Hin- und Her- Kopieren zu sparen wäre es
> natürlich schön, wenn das nummerieren mit Bezug auf die schon
> vorhandenen Dateien erfolgt.
> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
> der nächst höheren Nummer.

Nimm doch lieber den Namen und die Seriennummer von der Platte als 
festen Präfix. Dann kannst Du die Dateien sehr leicht zuordnen.


Marcel

[toc] | [prev] | [next] | [standalone]


#113866

FromDetlef Paschke <schabau@t-online.de>
Date2021-01-08 10:05 +0100
Message-ID<rt977s$bk8$1@solani.org>
In reply to#113856
Am 07.01.2021 um 19:55 schrieb Marcel Mueller:
> Am 07.01.21 um 15:45 schrieb Detlef Paschke:
>> Bei jedem Aufruf läuft diese Zeile 4 mal durch und erzeugt die
>> nummerierten Output-Dateien. Soweit so gut.
>>
>> ...
>> Sprich, sind bereits Dateien smart[n].txt vorhanden, dann beginne bei
>> der nächst höheren Nummer.
> 
> Nimm doch lieber den Namen und die Seriennummer von der Platte als 
> festen Präfix. Dann kannst Du die Dateien sehr leicht zuordnen.

Ja, selbst die SN würde genügen. Hatte ich auch überlegt.
Das auslesen der Seriennummer ist mir zwar gelungen, ich brauchte aber
den gleichen Ablauf (for d in ...;do) wie ich ihn zum auslesen der
SMART-Daten an den einzelnen Ports des Megaraid habe, noch einmal um für
den Dateinamen die SN zu ermitteln und einzufügen.

Vermutlich hätte man die SN auch mit grep oder irgend was aus den
jeweiligen SMART-Daten ziehen und als Dateiname anfügen können, aber da
bin ich nicht sonderlich firm drin.

> Marcel 

Viele Grüße
Detlef Paschke

-- 
Das "Zitat des Augenblicks" gibt es nur auf
http://www.schabau.dynip.online
Meine "Merkzettel"
http://www.helpdesk.dynip.online

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.os.unix.linux.misc


csiph-web