Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
12.06.2021, 22:08:44

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25679
  • Letzte: nikdams
Statistiken
  • Beiträge insgesamt: 740641
  • Themen insgesamt: 59574
  • Heute online: 504
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [gelöst]  Hilfe... brauche Unterstützung für einen Script zwischen Grub und crontab  (Gelesen 770 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Tachchen liebe Leute......oder eher schon guten Abend ....
Wie Ihr in meiner Rubrik Auswahl seht bin ich noch keine Experte  ;)
Aber ich beschäftige mich seit paar Wochen mit Linux und bin ein echter Fan geworden.

Nun stoße ich aber auf Grenzen, sei es vom Verständniss, sei mangels Erfahrung und
mangels Suchbegriffen oder der Grammatik in Shells oder Batch.

Also :
Ich möchte in einer Art "Autostart- Script" (ich weiss nicht wie man bei Linux sagt , Batch? Shell?)
ein paar einfache Kommandos ausführen.

Ein Script im Crontab mit @reboot funktioniert leider nicht zuverlässig. Will sagen es funktioniert, aber jedes X- te mal
scheint mein Script von crontab nicht nach reboot ausgeführt zu werden.... dies sporadisch , warum auch immmer !? Timing Geschichte ?

@reboot rm -rf /home/einfach/
@reboot cp -a /home/default/einfach /home
@reboot chown einfach:einfach -R /home/einfach

Also denke ich, ich könnte zwischen GRUb und crontab , über sytemd mein Script einbringen.
Ich lese und finde viel, verstehe es aber leider absolut nicht.

Nun aber was ich da im Script machen will , muss.....

Für meine Eltern, älters Semester habe ich einen UserAcount mit"kindernarrensicheren Desktop & Buttons und Settings etc...) angelegt.

Alles tippi toppi, wenn mein Vater nicht so heimlich experiementierfreudig wäre.... ??? ??? ???

Also ich komme auf das Wesentliche zurück.

Ich brauche Hilfe wie ich folgendes Script zwischen Grub und crontab einbringen kann:

rm -rf /home/einfach/
cp -a /home/default/einfach /home
chown einfach:einfach -R /home/einfach

Was mache ich da... ich kopier den Arbeitsplatz wie von mir eingestellt jedes mal beim starten wieder von einer Kopie "default"  ins "einfach" , den Usernamen meines Vaters.
Dies mit einer Löschung seiner verfummelten Dinge davor.
Dies weil mein Daddy es irgendwie immer hinbekommt was anderes zu verfummeln.....

Bite keine Hinweise zu Livesystemen, Kiosk- und Gastsystemen etc ......alles schon durch.
Auch die Icons zu sperren , alla, sudo chattr +i ~/.config/xfce4/desktop/icons*... geht nicht zuverlässig.

So wie es jetzt ist , ist es PERFEKT,  bis auf den beschriebenen Mangel, das Crontab mit dem Script nicht zuverlässig arbeitet.

Ich habe was von local.rc gelesen, das gibt es bei mir nicht ( linuxmint-20.1-xfce-64bit )

Und was zu systemd..... und da hört es bei mir auf.

Vielleicht kann mich jemand "an die Hand nehmen" und mir einen einfachen Weg aufzeigen ... das wäre superklasse.... :) :) :)

Dann gibt es noch eine Kleinigkeit.... die rechte Maustaste muss bei meinem Daddi abgeschaltet werden.
In einem anderem Beitrag hatte ich es schon davon ....es endete dort u.a mit : Kabel der Maus-Taste ab ..... ne,ne,ne,ne so bin ich nicht...
Das geht auch perfekt mit :

xinput set-button-map 10 1 2 0 im Terminal.

So, und nun wieder ein Problem, Crontab kennt nur seine normalen commands,  das  xinput set-button-mapkennte er nicht und kann es nicht ausführen...

Sodele, wie wir Schwaben sagen....

Ich brauche also was zwischen Grub und crontab wo folgendes  pro Neustart ausgeführt wird:

rm -rf /home/einfach/
cp -a /home/default/einfach /home
chown einfach:einfach -R /home/einfach
xinput set-button-map 10 1 2 0

Und nun warte ich gespannt, ob Ihr mir helfen könnt diese Nuss zu knacken  :D

Beste Grüsse Rainer















« Letzte Änderung: 09.06.2021, 16:18:41 von RainerKol »

Hm, der Script-Spezi bin ich auch nicht ?!
Zudem verstehe ich bei deiner Frage überhaupt nicht was das mit grub und/oder crontab zu tun haben könnte ?
Ich finde da bist du doch schon auf dem richtigen Weg
Zitat
Also :
Ich möchte in einer Art "Autostart- Script" (ich weiss nicht wie man bei Linux sagt , Batch? Shell?)
ein paar einfache Kommandos ausführen.

Ein Script das bei jedem Systemstart ausgeführt wird ist doch die Lösung - oder ?
Dazu legst du dir mit mit dem Texteditor "xed" eine Datei an mit diesem Inhalt:
#!/bin/bash
rm -rf /home/einfach/
cp -a /home/default/einfach /home
chown einfach:einfach -R /home/einfach
xinput set-button-map 10 1 2 0

Dieser Datei gibst du z.B. den Namen "einfach.sh".
Im /home/default legst du einen Ordner "Scripte" an und schiebst die Datei / das Script dort hinein.

Wenn du Cinnamon benutzt gehst du jetzt im Menü auf "Systemeinstellungen" und dann "Startprogramme".
Hier legst du über das "+" und dann "Benutzerdefinierter Befehl" einen Starter an
- der Name ist frei wählbar
- der Befehl sollte dann so aussehen
/home/default/Scripte/einfach.shwenn der Benutzername wirklich "einfach" ist - sonst bitte das erste "einfach" entsprechend anpassen.
Jetzt sollte bei jedem Neustart das Script ausgeführt werden.

EDIT: ich habe erst jetzt gelesen das XFCE genutzt wird - da weiß ich nicht wie "Startprogramme" oder ähnlich aufgerufen wird.
« Letzte Änderung: 04.06.2021, 19:23:36 von billyfox05 »

Hy,
mit Grub und crontab meinte ich nur den Zeitpunkt wo was passieren musste.
Da Crontab zu spät passiert und Grub für den Einschaltpunkt als Definition dienen sollte.
Da sehe ich, was ich davon hab, es überdeutlich sagen zu wollen.
Man sollte nicht eben nicht mit der rechten Hand am linken Ohr kratzen  :D :D :D

Also: forgett it mit Grub und Crontab.

Ja... ein Script das bei jedem Neustart einfach ausgeführt wird ....muss aber zeitlich vor "crontab" passieren und bevor der Arbeitsplatz "hochgefahren", initialisiert wird
da Crontab so gegen Ende von was auch immer welchen Initialisierungen kommt... habe es so gelesen, das es bei crontab und @reboot mit manchen Scripten "zeitprobelme" beim hochstarten gibt.

Also ich hab keine Cinammon, ich hab XFCE....mal durchschauen, wie es da gehen könnte.
Muss ja auch ähnlich sein.....

Achso, vergessen, wo bleibt denn mein Anstand.... Danke für den Tip..!

Vielleicht ist es echt so einfach, im Geschäft hat mich mein Admin darauf hingewisen, dass dies so komplex wäre...
Ich sagte bei Windows und dessen Autostart, heue Taskmanager gehts doch auch simpel...Antwort , Linux megakomplex...systemd, Units und was weis ich.
Nach 10 Minuten taten mir die Ohren weh und ich hatte den selben klatschenden Affen im Kopf wie Homer Simpson.

« Letzte Änderung: 04.06.2021, 19:36:12 von RainerKol »

Moin,
für >rc.local< empfehle ich folgende Lektüre: https://wiki.ubuntuusers.de/rc.local/
Gruß
Wolfgang

Wenn ich @RainerKol richtig verstehe, muss die Aktivität vor dem Login prompt passieren (es wird dem User doch das Home Verzeichnis unter dem Gesäß weggezogen). M.E. passt eine systemd Service Unit hier gut.
Ihr würde hiermit mal anfangen, zu experimentieren (ist ungetestet):
# /etc/systemd/system/einfach.service
[Unit]
Description=Runs before login prompt
After=systemd-user-sessions.service
Before=getty@tty1.service getty.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/einfach.sh
TimeoutSec=0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Guten Morgen,
nach deinem ersten Thread habe ich mich mit dem Thema >Kiosk-System< beschäftigt um einen Rechner so zu konfigurieren, dass er bei Ausstellungen etc. von jedem bedient werden kann und nach Neustart die ursprünglichen Einstellungen wieder hergestellt werden.
Das ganze ist noch nicht abgeschlossen, aber es gibt schon etwas funktionierendes. Und dies ist folgendes:
Speichern der Einstellungen:
#!/bin/bash
mkdir -p /etc/kiosk/
rsync -a --delete /home/$1 /etc/kiosk/
Dies als Script >kiosk.sh< erstellen (nicht vergessen Ausführbar zu machen!)
Gestartet wir es so:
sudo ./kiosk.sh Benutzer-ACHTUNG! In dieser Version nicht ohne Benutzer starten-
Für Benutzer natürlich deinen Benutzer (angelegt als Standard-Benutzer) eingeben, um weitere Benutzer anzulegen einfach nochmal laufen lassen mit den weiteren Benutzern.
Das Script legt unter etc/kiosk jeweils ein Verzeichnis der Benutzer an und kopiert die Daten von dessen >Home< dahinein.
Für den Start bedienen wir uns >Systemd< und das geht so:
Erstmal das Script für den Restore, welches du anpassen musst das heißt, du musst die Verzeichnisse entsprechend deiner Benutzer anpassen:
#!/bin/bash 
rsync -a --delete /etc/kiosk/Benutzer1/ /home/Benutzer1/
rsync -a --delete /etc/kiosk/Benutzer2/ /home/Benutzer2/
exit 0
Das script unter >restore.kiosk.sh< in /etc/ speichern
Nun muss das noch gestartet werden:
[Unit]
Description=Restore Kiosk

[Service]
ExecStart=/etc/restore.kiosk.sh

[Install]
WantedBy=multi-user.target
Dies speichern wir unter >restore.kiosk.service< in dem Verzeichnis >/etc/systemd/system<
Damit das auch läuft muss die Unit eingerichtet werden:
sudo systemctl enable restore.kiosk.serviceob das funktioniert hat prüfen wir mit
systemctl status kiosk.restore.serviceDas sollte dann so aussehen:
wolfgang@Baldur:~$ systemctl status restore.kiosk.service
● restore.kiosk.service - Restore Kiosk
     Loaded: loaded (/etc/systemd/system/restore.kiosk.service; enabled; vendor>
     Active: inactive (dead) since Wed 2021-06-02 09:44:24 CEST; 2 days ago
   Main PID: 717 (code=exited, status=0/SUCCESS)

Jun 02 09:44:21 Baldur systemd[1]: Started Restore Kiosk.
Jun 02 09:44:24 Baldur systemd[1]: restore.kiosk.service: Succeeded.
Wenn alles so eingerichtet ist sollte nach einem Neustart des Rechners die Einstellungen für die angelegten Benutzer wieder hergestellt werden. Aber ACHTUNG! alle gespeicherten Daten sind dann auch weg, die müssen extern gespeichert werden und damit das nicht vergessen wird kannst du dies noch einrichten  https://www.linuxmintusers.de/index.php?topic=69331.msg899801#msg899801... :D
Also das ganze befindet sich im Experimentierstadium und ist dementsprechend mit gewisser Vorsicht und eigener Verantwortung zu verwenden.
Was mir vorschwebt ist das ganze einerseits komfortabler zu gestalten und anderseits die Möglichkeit zu schaffen, dass die Daten aus >Dokumente, Bilder, Musik und Video< erhaten bleiben...
Ach ja, dein Mausproblem habe ich noch nicht berücksichtigt, versuch es mal in dem Script resore.kiosk.sh nach den >rysync< Befehlen oder baue ein eigenes Script und starte es im Autostart über die Einstellungen unter >Startprogramme<.
So nun viel Spaß am Kiosk
Gruß
Wolfgang

PS. Die Scripte befinden sich im Anhang
Habe das mit der Maus getestet funktioniert, wenn du das in ein extra Script speicherst und in den Startprogrammen des jeweiligen Benutzers einträgst. Das Script dazu ist im Anhang, bitte nach
sudo cp maus.r.aus.sh /usr/local/binkopieren. Dann aber nicht vergessen die Einstellungen mit >sudo kiosk.sh< des Benutzer speichern dessen Maustaste gesperrt werden soll..

« Letzte Änderung: 05.06.2021, 09:37:14 von Wolfgang58 »

rc-local
rc-local gibt es bei meiner instaqllation leider nicht...auch nicht unter versteckten EIgenschaften

Moin,
für >rc.local< empfehle ich folgende Lektüre: https://wiki.ubuntuusers.de/rc.local/
Gruß
Wolfgang

rc-local gibt es bei meiner installation leider nicht...auch nicht unter versteckten EIgenschaften

Guten Morgen,
nach deinem ersten Thread habe ich mich mit dem Thema >Kiosk-System< beschäftigt um einen Rechner so zu konfigurieren, dass er bei Ausstellungen etc. von jedem bedient werden kann und nach Neustart die ursprünglichen Einstellungen wieder hergestellt werden.
Das ganze ist noch nicht abgeschlossen, aber es gibt schon etwas funktionierendes. Und dies ist folgendes:
Speichern der Einstellungen:
#!/bin/bash
mkdir -p /etc/kiosk/
rsync -a --delete /home/$1 /etc/kiosk/
Dies als Script >kiosk.sh< erstellen (nicht vergessen Ausführbar zu machen!)
Gestartet wir es so:
sudo ./kiosk.sh Benutzer-ACHTUNG! In dieser Version nicht ohne Benutzer starten-
Für Benutzer natürlich deinen Benutzer (angelegt als Standard-Benutzer) eingeben, um weitere Benutzer anzulegen einfach nochmal laufen lassen mit den weiteren Benutzern.
Das Script legt unter etc/kiosk jeweils ein Verzeichnis der Benutzer an und kopiert die Daten von dessen >Home< dahinein.
Für den Start bedienen wir uns >Systemd< und das geht so:
Erstmal das Script für den Restore, welches du anpassen musst das heißt, du musst die Verzeichnisse entsprechend deiner Benutzer anpassen:
#!/bin/bash 
rsync -a --delete /etc/kiosk/Benutzer1/ /home/Benutzer1/
rsync -a --delete /etc/kiosk/Benutzer2/ /home/Benutzer2/
exit 0
Das script unter >restore.kiosk.sh< in /etc/ speichern
Nun muss das noch gestartet werden:
[Unit]
Description=Restore Kiosk

[Service]
ExecStart=/etc/restore.kiosk.sh

[Install]
WantedBy=multi-user.target
Dies speichern wir unter >restore.kiosk.service< in dem Verzeichnis >/etc/systemd/system<
Damit das auch läuft muss die Unit eingerichtet werden:
sudo systemctl enable restore.kiosk.serviceob das funktioniert hat prüfen wir mit
systemctl status kiosk.restore.serviceDas sollte dann so aussehen:
wolfgang@Baldur:~$ systemctl status restore.kiosk.service
● restore.kiosk.service - Restore Kiosk
     Loaded: loaded (/etc/systemd/system/restore.kiosk.service; enabled; vendor>
     Active: inactive (dead) since Wed 2021-06-02 09:44:24 CEST; 2 days ago
   Main PID: 717 (code=exited, status=0/SUCCESS)

Jun 02 09:44:21 Baldur systemd[1]: Started Restore Kiosk.
Jun 02 09:44:24 Baldur systemd[1]: restore.kiosk.service: Succeeded.
Wenn alles so eingerichtet ist sollte nach einem Neustart des Rechners die Einstellungen für die angelegten Benutzer wieder hergestellt werden. Aber ACHTUNG! alle gespeicherten Daten sind dann auch weg, die müssen extern gespeichert werden und damit das nicht vergessen wird kannst du dies noch einrichten  https://www.linuxmintusers.de/index.php?topic=69331.msg899801#msg899801... :D
Also das ganze befindet sich im Experimentierstadium und ist dementsprechend mit gewisser Vorsicht und eigener Verantwortung zu verwenden.
Was mir vorschwebt ist das ganze einerseits komfortabler zu gestalten und anderseits die Möglichkeit zu schaffen, dass die Daten aus >Dokumente, Bilder, Musik und Video< erhaten bleiben...
Ach ja, dein Mausproblem habe ich noch nicht berücksichtigt, versuch es mal in dem Script resore.kiosk.sh nach den >rysync< Befehlen oder baue ein eigenes Script und starte es im Autostart über die Einstellungen unter >Startprogramme<.
So nun viel Spaß am Kiosk
Gruß
Wolfgang

PS. Die Scripte befinden sich im Anhang
Habe das mit der Maus getestet funktioniert, wenn du das in ein extra Script speicherst und in den Startprogrammen des jeweiligen Benutzers einträgst. Das Script dazu ist im Anhang, bitte nach
sudo cp maus.r.aus.sh /usr/local/binkopieren. Dann aber nicht vergessen die Einstellungen mit >sudo kiosk.sh< des Benutzer speichern dessen Maustaste gesperrt werden soll..


Hallo Wolfgang, ich danke dir für diese vielen Infos und deine Hilfe ....Danke....
Bin auf deine Endergebnisse gespannt....
Ich schrieb ja, .....es ist so Perfekt..... , u.a. weil mein Daddy , schreiben und lesen von Texten und Bildern benutzt....
Was er da verfummelt ist mir erst mal (heute) egal......aber seine Plattform muss immer gleich sein und er muss Libre Office bedienen können.
Sowie Bilder.....

Ich wedre heute Abend  , mit allen euren Infos weitermachen und bedaanke mich herzlich für die Zeit dir Ihr euch
genommen habt mir zur Seite zu stehn...

... Ich lese... so unrecht hatte mein Andmin mit "systemd" wohl doch nicht  ;)

Zum speichern der Texte und Bilder von ihm habe ich im Crontab eine Routine wo einmal pro 1 Stunde seine Texte kopiert und auf einer anderen Partition
unter Zeit und Datum speichert... Das tuts momentan so weit, weil die Datein klein sind...
Und die Bilder , hauptsächlich meiner kleinen Prinzessin ,welcher er hat bekommt er von mir über Teamview.
Das sind dann so Dinge , die gerade akzepttabel sind. ;D

Ich hatte es auch mit mod. Livesystemen und externen USB STick versucht
Hatte dann auch irgendwann mal sauber funktioniert, aber .... was soll ich sagen, der Stick war mal drin, mal draußen  :o :o :( :( :P :P

Hallo Wolfgang, ich danke dir für diese vielen Infos und deine Hilfe ....Danke....
Moin,
bis ich mich da wieder reinknien kann dauert noch ein wenig...
Aber bitte tue mir/uns einen Gefallen, dass komplette zitieren der Posts ist nicht nötig und macht den Thread völlig unübersichtlich!
Danke!
Gruß
Wolfgang

ok, Sorry

Mir ist da noch etwas "einfaches" eingefallen ?! - vllt. ist das einen Versuch wert ?!
Desktop-Einstellungen etc. können gesichert werden mit
dconf dump /org/ > dconf.txtDabei wird eine Datei "dconf.txt" erstellt und im /home abgelegt (Der Name der Datei ist frei wählbar)
Die gesicherten Einstellungen werden zurück geschrieben mit
dconf load /org/ < dconf.txt
Der letzte Befehl und der Befehl zur Abschaltung der rechten Maustaste in einem Script -
das Script mit "Startprogramme" bei jedem Booten aufrufen - könnte schon helfen ?!

Guten Morgen,
@billyfox05:
nun ja, die Sicherung und wieder Herstellung der >dconf-settings< würde mir nicht reichen, da ja auch weitere Programmeinstellungen beim Start des Rechners wieder hergestellt werden sollen.
Gruß
Wolfgang

Mir ist da noch etwas "einfaches" eingefallen ?! - vllt. ist das einen Versuch wert ?!
Desktop-Einstellungen etc. können gesichert werden mit
dconf dump /org/ > dconf.txtDabei wird eine Datei "dconf.txt" erstellt und im /home abgelegt (Der Name der Datei ist frei wählbar)
Die gesicherten Einstellungen werden zurück geschrieben mit
dconf load /org/ < dconf.txt
Der letzte Befehl und der Befehl zur Abschaltung der rechten Maustaste in einem Script -
das Script mit "Startprogramme" bei jedem Booten aufrufen - könnte schon helfen ?!


Hallo, ich würde deinen Tip gerne noch mit einbinden, doppelt gemoppelt hällt besser.
wie und wo, also an welcher Stelle, Verzeichniss,  muss ich das machen, wenn der User , hier mein Vater "einfach" heißt ?