Shellscript funktioniert nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 13:33:56

Hallo,
ich habe ein Script mit folgendem Inhalt geschrieben.

Code: Alles auswählen

#!/bin/sh
cd ~/svnordner/
svn update
Solange ich es "per Hand" ausführe funktioniert es, setze ich es allerdings in Crontab funktioniert es nichtmehr.



Gruß

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von feltel » 21.08.2009 13:46:55

In wessen Crontab trägst Du das ein? In die systemweite unter /etc/crontab bzw. /etc/cron.d? Dann wird die unter dem User root ausgeführt. Mach Dir eine eigene Crontab und lies sie mit "crontab ~/meinecrontabdatei" ein. Kontrollieren kannst Du die Einstellungen mit "crontab -l"

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Shellscript funktioniert nicht

Beitrag von michaels » 21.08.2009 13:47:49

Hallo,

versuche mal den Befehl svn mit absolutem Pfad anzugeben (which svn).

edit:
zu langsam und feltel dürfte auch noch richtig liegen...

Gruß

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 13:52:18

Ja in den systemweiten Crontab.
Sollte eigentlich auch unter dem Benutzer root ausgeführt werden.
Danke für die schnellen Antworten

Gruß

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von feltel » 21.08.2009 13:56:04

Okay, fehlt ggf. der Zeilenumbruch am Ende der crontab? Cron liest die crontab nur dann ein und führt sie aus, wenn die crontab mit einem Zeilenumbruch endet.

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 13:58:10

Ist vorhanden.
Schreibe ich ins script z.B: echo "a" >> test.txt wird das auch ausgeführt


Gruß

Benutzeravatar
whisper
Beiträge: 3385
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von whisper » 21.08.2009 14:02:40

Ändere doch mal dein Script ab

Code: Alles auswählen

 #!/bin/sh
    cd ~/svnordner/
   pwd | mail root
    svn update
und lies die mail.
Du wirst wahrscheinlich in / stehen und nicht in /root/svnordner
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 14:03:31

Wo kann ich diese Mail auslesen?

Gruß

Benutzeravatar
whisper
Beiträge: 3385
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von whisper » 21.08.2009 14:04:41

also root:
mail
am Prompt eingeben, oder mailx, oder mutt, oder pine :-)
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 14:07:44

Bei der Eingabe vom mutt bekomme ich die Meldung /var/mail/root: No such file or directory (errno = 2)

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von Meillo » 21.08.2009 14:10:25

Soll ~ für das Home des Users oder von root stehen?

Nimm stattdessen lieber einen absoluten Pfad, dann ist's klar.
Use ed once in a while!

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 14:13:43

Code: Alles auswählen

  
#!/bin/sh
cd /root/svnordner/
/usr/bin/svn update
Ausführen "per Hand" geht ... über cron nicht

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Shellscript funktioniert nicht

Beitrag von Duff » 21.08.2009 14:41:19

Also mit per Hand meinst du wahrscheinlich, dass Skript per Hand ausführen und nicht die einzelnen Befehle.

Wie sieht denn dein kompletter crontab-Eintrag aus (crontab -l)?
Eventuell mal die Ausgabe in ein Logfile schreiben lassen.
Oh, yeah!

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 14:44:56

Der crontab-Eintrag ist leer , da ich sie ja über /etc/crontab eingefügt habe.


Gruß

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von Meillo » 21.08.2009 14:47:34

Wie heißt dein Script? Ich hatte mal Probleme wenn ein Punkt enthalten war; das betraf zwar /etc/cron.daily ... aber wer weiß.
Use ed once in a while!

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 14:51:14

updateScript.sh
allerdings lässt es mit anderem Inhalt ja ausführen.

Nachtrag: Was ich gerade gesehen habe er geht auf jedenfall ins cd /root/svnordner/ Verzeichnis er führt nur kein SVN UP durch.


Gruß

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 17:34:32

Über > $HOME/tempfile.txt 2>&1 im crontab habe ich rausgefunden, das er scheinbar den publickey vom ssh-agent nicht übernimmt.
Da steht Permission denied, please try again (jeweils 3 mal).

Gruß

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Shellscript funktioniert nicht

Beitrag von habakug » 21.08.2009 18:16:54

Hallo!

Einen Eintrag in crontab erstellt man so:

Code: Alles auswählen

# mkdir /root/bin/
# cd /root/bin
# cat hello.sh
#!/bin/sh
wall -n Hallo crontab!
# chmod 700 hello.sh
# crontab -e
# crontab -l
*/1 * * * * /root/bin/hello.sh
Ab jetzt erhält man auf allen Konsolen minütlich eine schöne Meldung. Wer ganz sicher gehen will startet den crond neu (/etc/init.d/crond restart).

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 18:30:15

Mein Problem ist, dass er das SVN UPDATE falsch ausführt.

Gruß

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Shellscript funktioniert nicht

Beitrag von habakug » 21.08.2009 18:46:30

Hallo!

Warum schreibst du dann
Ausführen "per Hand" geht ... über cron nicht
?
Vielleicht solltest du für eine neue Frage einen neuen Thread eröffnen...

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von Meillo » 21.08.2009 18:59:25

habakug hat geschrieben:Warum schreibst du dann
Ausführen "per Hand" geht ... über cron nicht
?
Vielleicht solltest du für eine neue Frage einen neuen Thread eröffnen...
Hast du denn den Thread mitverfolgt?

So wie ich das sehe, hat es mal mit diesem Problem (``es funktioniert nicht'') angefangen. Inzwischen sind wir bei dem Punkt angelangt, dass es vermutlich an der Authentifizierung für `svn update' liegt. (Da es sich nur um den Weg der Problemeingrenzung handelt, ist IMO ein extra Thread dazu nicht angebracht. Okay, vielleicht könnte man das Topic ändern ... denn das war ja schon von Anfang an schlecht.)

`gpg-agent' wird nicht einbezogen (funktioniert das überhaupt für nicht-interaktive Sessions?). Und so bekommt `svn' kein Passwort und damit schlägt das Update fehl.

Soweit habe ich das verstanden. Und damit wären wir jetzt auf der Suche nach einer Möglichkeit zur Authentifizierung bei `svn' im Script.

@zZonk: Habe ich den Sachverhalt korrekt erfasst?
@all: weiß dazu jemand weiter, denn ich kann da nicht helfen.
Use ed once in a while!

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 19:08:52

@Meillo ja das hast du richtig verstanden

Starte ich das Script selbst funktioniert das Update ohne PW (über den ssh-agent).
Über cron funktioniert es leider nicht.

Gruß

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Shellscript funktioniert nicht

Beitrag von habakug » 21.08.2009 19:20:40

Hallo!

Vielleicht

Code: Alles auswählen

(svn help update)
svn --non-interactive update
Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Shellscript funktioniert nicht

Beitrag von Meillo » 21.08.2009 19:33:10

hier weiter: http://debianforum.de/forum/viewtopic.php?f=9&t=113330

EDIT: war 'ne Fehlinformation
Zuletzt geändert von Meillo am 21.08.2009 20:10:34, insgesamt 1-mal geändert.
Use ed once in a while!

zZonk
Beiträge: 35
Registriert: 19.08.2009 09:22:19

Re: Shellscript funktioniert nicht

Beitrag von zZonk » 21.08.2009 19:50:43

Nein, das war ein früheres Problem was durch den Einsatz von SSH gelöst wurde.

Antworten