Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Skriptgesteuert Text einer .conf-Datei anhängen?

Empfohlene Antworten

Veröffentlicht

Wie kann ich Text in einem Skript einer Datei anhängen? Mit welchem Befehl?

Der Text in dem Skript (/bin/fstabanhang.sh) wäre zum Beispiel:

/img/$1.iso /cd/$1 iso9660 auto,loop,ro,user 0 0

So, jetzt will ich einfach nur /bin/fstabanhang.sh testtext eingeben und in der fstab soll dann /img/testtext.iso /cd/testtext iso9660 auto,loop,ro,user 0 0 hintendrangehängt werden.

Gruß

sux :confused:

Ja, geil, ich trottel, wie konnte ich den echo-Befehl vergessen, vielen Dank.

Aber irgendwie funzt das immer noch nicht. Ich habe als root keine Berechtigung, obwohl die Datei mir gehört. Ich habe mir sogar explizit alle Rechte gegeben. Woran liegt das jetzt? Ich habe sogar versucht, in eine Testdatei zu schreiben, er macht es nicht. Liegt das vielleicht an dem $1 als Platzhalter?

Wie gesagt, ich gebe nur /bin/fstabeintrag.sh <imagename> ein und er soll als $1 den imagenamen nehmen.

Gruß

Joel

Original geschrieben von sux

Ich habe sogar versucht, in eine Testdatei zu schreiben, er macht es nicht.

Seltsam, ich habe zwar nicht versucht in die fstab zu schreiben, aber in eine Testdatei, und das klappt bei mir hervorragend.

Poste doch bitte mal den Source des Skripts, vielleicht hast ja noch irgendeinen Fehler drin...

ICQ

Hier die Datei:

#!/bin/bash

echo /img/$1.iso /cd/$1 iso9660 auto,loop,ro,user 0 0 >> /etc/fstab

Fehlermeldung:

Keine Berechtigung

Schon passiert das Backup, keine Frage.

Die Datei hat die Rechte 774 also Benutzer und Gruppe vollzugriff, für die beiden habe ich sogar das Spezialattribut gesetzt, mal ausprobieren, aber hat auch nicht geklappt.

Vielen Dank für eure Mühe

sux

Ja klar

#!/bin/bash Ich denke, das ist die bash, oder? Oder ist das falsch? Soll ich eine andere nehmen? Wenn ja welche und wie spreche ich die in einem Skript an?

sux

Klar, habe ich schon versucht, das funktioniert einwandfrei. Ich habe ja das Gefühl, dass es an diesem $1 liegt, dem Platzhalter. Vielleicht bekommt er das nicht gewechstelt. Obwohl $1 in einem anderen Skript geht, ohne Probleme. Ich habe die fstab ja schon manuell geändert. Das war eine Schweinearbeit, aber für meine Kollegen in Hintertupfingen, die das Gerät benutzen sollen muss es ein bisschen einfacher sein, deshalb diese Rumskripterei, verstehst?

sux

funktioniert denn das:

./skriptname img.name

#!/bin/bash

echo $1 >> /etc/fstab

steht dann in der /etc/fstab am Ende: img.name???

oder bzw. hast du es schon mal mit Hochkommas versucht?

echo "/img/$1.iso /cd/$1 iso9660 auto,loop,ro,user 0 0" >> /etc/fstab

Neinnein, habe ich alles schon ausprobiert. Es liegt tatsächlich an diesem $1. Er nimmt keinen Platzhalter, keine Berechtigung schreibt der Rechner. Ohne geht es einwandfrei. So, wie jetzt weiter?

Gruß

sux

ja keine Berechtigung wahrscheinlich deswegen, weil nichts bzw. das falsche für $1 eingesetzt wird.

schreib mal ein Testskript...

und führe es wie folgt aus:

./testscript huhu

und das Skript:

#! /bin/bash

param1="$1"

echo "Das Skript wurde mit dem Parameter: '$param1' aufgerufen."

So was gibt jetzt dein Skript jetzt aus???

Das hier:

Das Skript wurde mit dem Parameter: '' aufgerufen.

ich möchte das sicher wissen, weil ich es mir einfach nicht ganz vorstellen kann, sorry

Also zum Verständnis:

Skript (z.B. fstabeintrag.sh):

#!/bin/bash

echo /img/$1.iso /cd/$1 iso9660 auto,loop,ro,user 0 0 >> /etc/fstab

Parameter ist $1

Befehl: /bin/fstabeintrag.sh imagename

Dadurch soll in die fstab folgender Eintrag gemacht werden:

/img/imagename.iso /cd/imagename iso9660 auto,loop,ro,user 0 0

Es ist nichts weiter, als eine CD standardmäßig zu mounten, deshalb der fstab-Eintrag. Die CDs sollen doch immer zur Verfügung stehen, oder? Und $1 ist doch der Platzhalter, den ich durch (in diesem Fall) imagename belege.

Ich habe ja schon einige Skripte, in denen ich mit $1 arbeite, aber in diesem Fall funktioniert es nicht, warum auch immer.

Gruß

sux

ja ich habe das schon verstanden, nur ist mir überhaupt nicht klar, warum $1 nicht funktioniert...

Könntest ja mal spaßhalber $2 nehmen, dann müsste natürlich der Aufruf so sein: ./skript test imagename und das in deinem skript anpassen...aber ich hab echt keinen Rat mehr, es ist schwierig dir so zu helfen, wenn ich nicht an die Kommandozeile rankomme...egal..

Hast du denn schonmal versucht eine Liste der images zu erstellen?

img1

img2

img3

img4

und dann:

#! /bin/bash

while read line; do

echo "echo /img/$line.iso /cd/$line iso9660 auto,loop,ro,user 0 0 >> /etc/fstab";

done < img.liste

mach die Liste für den Anfang nicht zu groß und nimm erst beim 2. Versuch das echo weg..is nur debug

aaaaaaaaahh!! oh man mir ist noch was eingefallen.....hast du dein Skript auch ausführbar gemacht??

bubu@huhu:~> ./blubb.sh blubb

bash: ./blubb.sh: Keine Berechtigung

mach mal ein:

chmod 755 skriptname

also wenns dass war dann beiß ich in die Tischkante!

Jau Schlaubi,

ich habe gerade die Tischplatte am Wickel, Du hattest Recht, ich mußte die Datei auch ausführbar machen. Sowas einfaches und bescheuertes und ich komme nicht drauf. *****!

Vielen Dank für Deine Hilfe

Ach, eine Frage hätt´ ich da noch:

Kann man eine Partition umbenennen? Also beim Installieren habe ich mit Diskdruid der zweiten Festplatte die Partition /img zugewiesen. Jetzt fällt mir auf, dass ich sie besser anders genannt hätte. Ist das lediglich in der fstab festgelegt, dass ich das nur dort ändern muß, oder gibt es da noch andere Möglichkeiten?

Gruß

sux

Original geschrieben von sux

Kann man eine Partition umbenennen? Also beim Installieren habe ich mit Diskdruid der zweiten Festplatte die Partition /img zugewiesen. Jetzt fällt mir auf, dass ich sie besser anders genannt hätte. Ist das lediglich in der fstab festgelegt, dass ich das nur dort ändern muß, oder gibt es da noch andere Möglichkeiten?

Moin,

du meinst sicherlich, das du die Partition in das Verzeichnis /img eingehängt (gemountet) hast ?

in diesem Fall einfach die Partition unmounten,das Verzeichnis umbennen, und wieder neu mounten. Dies auch in der fstab ändern.

Gruß

Terran

....Hätte nicht gedacht dass ich in die Tischplatte beißen muss....ich kam auch erst überhaupt nicht darauf, weil du ja meintest du hättest schonmal Skripte geschrieben und dann dacht ich mir - nö, der hat das bestimmt ausführbar gemacht...das ist nämlich der 2te Schritt (1. touch skriptname) wenn ich ein Skript erstelle....

Whatever..ja Terran Marine hat recht....was du meinst ist nicht die Partition umbenennen sondern den Mount-Point...einfach ein:

root:~# umount /img

und

dann die /etc/fstab so ändern dass z.B. statt /img nimmst du /cd

dann wird bei booten in der /etc/fstab nachgeschaut und die Partition z.B. /dev/hdb2 nach /cd eingehängt

bzw. "montiert"..und dann kannst du auf deine 2te Platte mit cd /cd zugreifen (musst alles auf deine Bedürfnisse anpasssen). Bevor das nach /cd eingehängt werden kann muss es das Verzeichnis erst mal geben, als nur die /etc/fstab änder is nicht - auch nachsehen und sicherstellen dass das Verzeichnis/Mount-Point vorhanden ist also -> /cd

jetzt wie schon mein Vorredner gesagt das Verzeichnis erstellen oder das andere umbennen...

und wieder mounten:

root:~# mount /dev/hdb? /cd && ls /cd

PS: Ob du nun erst die fstab änderst und dann umountest oder zuerst umountest dann wieder mountest und dann die fstab änderst bleibt dir überlassen....umount/mount regeln das ganze im laufenden Betrieb und die fstab ist dafür zuständig das mounten zu vereinfachen weil du nicht mehr sagen musst:

mount /dev/blubb /mnt sondern es reicht dann mount /mnt zu sagen.....und außerdem ist sie dafür gut, wenn man filesysteme nach einem neustart wieder autom. gemountet haben will...sie kann natürlich noch viel mehr.....aba da empfehle ich dir google ;)

@Terran Marine: sorry fürs wiederholen...aber ich konnt ja schlecht nur das mit der Tischpladde hinposten *gg

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.