bitcon
Goto Top

Shellscript per CronJob funktioniert nicht

Guten Tag ,

zurzeit stehe ich vor einem Scripting Problem.

Das Problem besteht darin, dass ich ein Script via crontab ausführen möchte, das Script allerdings nur halb ausgeführt wird.
Das Skript läuft auf einem Raspberrypi2 mit dem aktuellen Jessie Betriebssystem. (Debian Partition)
Das Skript sieht wie folgt aus:
!/bin/bash
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if [ -e /var/mail/root ]; then


sudo rm /var/www/html/password.txt
sleep 15
sudo cat var/mail/root | sed -rne 's/.*password for Gäste: (.{10}).*/\1/ip' >/var/www/html/password.txt  
sleep 15
sudo rm /var/mail/root


fi

Wenn ich das Script über die Shell ausführe funktionieren alle Befehle.

Als Cronjob werden nur die beiden remove Befehle ausgeführt.
Nach einiger Online Recherche wurde ich darauf hingewiesen den PATH einzutragen um die Datei via Cronjob ausführen zu können.
Dieser Ansatz war allerdings ohne Erfolg.

Gruß
Bitcon

Content-Key: 313545

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

Printed on: April 23, 2024 at 11:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Aug 25, 2016 updated at 10:37:39 (UTC)
Goto Top
Moin,


Was bezwckst du mit
sudo var/mail/root
?

Maildatei ausführen? schlechte Idee

und da fehlt bei var/mail/root ein /, oder ist das nur ein Tippfehler oder fehlt da ein cat?

sudo var/mail/root | sed -rne 's/.*password for Gäste: (.{10}).*/\1/ip' >/var/www/html/password.txt

würde ich umschreiben zu
 sudo sed  /var/mail/root -rne 's/.*password for Gäste: (.{10}).*/\1/ip' >/var/www/html/password.txt 

Wenn ich das Script über die Shell ausführe funktionieren alle Befehle.

Bezweifle ich.

lks

PS. Als welcher user führst Du das Skript überhaupt aus? Wenn Du das als normaler User ausführst und sudo im cronjob aufrufst, hast Du niemanden, der Dein Paßwort eintippt. face-smile
Member: SlainteMhath
SlainteMhath Aug 25, 2016 at 10:52:03 (UTC)
Goto Top
Moin,

und zusätzlich würde zumindest die Zeile 10 rauswerfen, sonst löscht du u.U., alle Mails die in die 15 Sekunden ankommen. Zeile 8 ist auch nicht besonders sinnvoll .)

lg,
Slainte
Member: Bitcon
Bitcon Aug 25, 2016 at 11:21:39 (UTC)
Goto Top
Hi Lochkartenstanzer,

da fehlt das cat :D war aber ein Tippfehler danke für den Hinweis.
Das Skript ist über die Shell erfolgreich gelaufen ich habe es getetstet.

Deine Vorschlag hat leider nicht funktioniert face-sad

Vielen Dank für deine Hilfe

Gruß

Bitcon
Member: Bitcon
Bitcon Aug 25, 2016 at 11:23:35 (UTC)
Goto Top
Hi, SlainteMhath

Ich hab die Pausen nur zu Testzwecken eingefügt ;)
Vielen Dank für den Hinweis.

Gruß

Bitcon
Member: Lochkartenstanzer
Lochkartenstanzer Aug 25, 2016 at 11:26:01 (UTC)
Goto Top
Zitat von @Bitcon:

Deine Vorschlag hat leider nicht funktioniert face-sad

Vielen Dank für deine Hilfe


Als welcher User schreibst du das ganz denn in die Crontab? wie gesagt. Nimm alle sudos raus udn schau, ob es dann trotzdem funkltioniert.

lks
Member: Bitcon
Bitcon Aug 25, 2016 at 11:57:28 (UTC)
Goto Top
Hi Lochkartenstanzer,

ich bin als pi@raspberrypi angemeldet.
wenn ich alle sudos weglasse funktioniert nichts mehr.
Die Crontabs habe ich über den pi user angelegt.

Gruß

Bitcon
Member: Lochkartenstanzer
Lochkartenstanzer Aug 25, 2016 at 11:59:18 (UTC)
Goto Top
Zitat von @Bitcon:

ich bin als pi@raspberrypi angemeldet.

falscher User. Du mußt schon roo tnehmen, wenn Du root-rechte brauchst.

wenn ich alle sudos weglasse funktioniert nichts mehr.

wie zu erwarten. Du solltest den cronjob für root eintragen.

Die Crontabs habe ich über den pi user angelegt.

Genau das ist der Fehler.

lks
Member: Bitcon
Bitcon Aug 25, 2016 at 12:16:24 (UTC)
Goto Top
Ok, und warum ist es mir dann möglich die Datei aus dem /var/www/html/passwort.txt zu löschen ?

Wenn ich allso sudos entferne und einen crontab als root anlege funktioniert nichts mehr.
Allerdings funktioniert das Skript jetzt auch nicht mehr wenn ich es manuell ausführen möchte.

Gruß

Bitcon
Member: SlainteMhath
SlainteMhath Aug 25, 2016 at 12:39:55 (UTC)
Goto Top
Ok, nochmal alles auf Anfang...

1. Alle sudo's aus dem Script entfernen.
2. Rechte des Scripts auf 700 und owner auf root.root setzen
3. Als pi das script mit sudo ausführen - geht?
4. zum root account wechseln mit "su -"
5. Script in crontab eintragen mit "crontab -e" - geht?
Member: Bitcon
Bitcon Aug 25, 2016 at 12:54:45 (UTC)
Goto Top
Ich hab jetzt versucht die Befehle einzelt einzugeben dabei ist die Meldung cat: /var/mail/root Datei oder Verzeinis nicht gefundne obwohl ich als root angemeldet bin und eine Datei erstellt ist
Member: Lochkartenstanzer
Lochkartenstanzer Aug 25, 2016 at 13:34:40 (UTC)
Goto Top
Zitat von @Bitcon:

Ich hab jetzt versucht die Befehle einzelt einzugeben dabei ist die Meldung cat: /var/mail/root Datei oder Verzeinis nicht gefundne obwohl ich als root angemeldet bin und eine Datei erstellt ist

cat: gibt es auch nciht.

lks
Member: Bitcon
Bitcon Aug 26, 2016 at 18:56:27 (UTC)
Goto Top
Vielen Dank für eure Hilfe nach den 5 Schritten hat alles funktioniert .