Solaris Cron Bash

V

vschramm

Grünschnabel
Hallo,

ich habe folgendes Problem.
Ich möchte gerne Bash-Scripte als cron-job unter Solaris laufen lassen.
Wenn ich die Scripte normal laufen lasse funktionieren sie einwandfrei.
Als cron wird aber mitten im Script eine Fehlermeldung erzeugt die wahrscheinlich daherkommt, dass der cronjob als normale sh-Shell ausgeführt wird. Wie kann ich dem Cronjob mitteilen, dass er mit der Bash arbeiten soll ??

Danke für jeden Hinweis.

MFG
Spock
 
du kannst im cron bestimmte eviroment-variablen setzten wie z.b:

HOME=user's-home-directory
LOGNAME=user's-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

das letztere ist wohl das was du suchst :]
 
Danke, aber das habe ich schon versucht.
Wenn ich die Crontab editiere und anschliessend die Änderungen speichern will kommt folgende Meldung:

"/tmp/crontabmbaiik" 32 lines, 2547 characters
SHELL=/bin/bash
crontab: error on previous line; unexpected character found in line.
crontab: errors detected in input, no crontab file generated.

Also hilft das nicht wirklich. Gibt es noch'ne ander Möglichkeit ??
 
Hi,

was steht denn als Header in Deinem cronscript ?

#!/bin/bash

oder was ?

hmhweb
 
(1) Wenn ich mir die Fehlermeldung anschau:
Code:
crontab: error on previous line; unexpected character found in line.
crontab: errors detected in input, no crontab file generated
könnte man auch Steuerzeichen in der Zeile vermuten.
Zeile löschen und neu schreiben ?

(2) Gibt es eine /etc/shells mit freigegebener bash ?
Stimmt der Pfad /bin/bash ?

hmhweb
 
Zu 1: Habe ich gemacht. Ohne Erfolg.

Zu 2. /bin/bash ist verlinkt zu /usr/local/bin/bash
Alle Rechte sind hier gesetzt. /etc/shells gibt es nicht.


Oder kann es was mit der Solaris-Version zu tun haben ?
Arbeite mit Solaris 8.

Gruß
vschramm
 
Mit Solaris 8 hat das eher nichts zu tun.

Unter welcher shell rufst Du crontab -e auf ?
Ich habe es gerade mal auf einer Sol 8 durchgespielt, wo default csh ist und hatte Probleme.
In ksh und (vermutlich auch in sh) lief das Anlegen des crontab-Eintrags.

Kannst Du überhaupt crontab-Einträge erzeugen oder ist Dein User gesperrt ?
(Da war default, glaube ich, daß dies nur root kann :)

Ist die Kiste patchseitig aktuell ? Sonst schau mal nach SunSolve.

Ein Blick in Dein Skript und die Fehlerzeile wär auch ganz nützlich.

hmhweb
 
Ahoi,

habe das Problem jetzt selbst gelöst.
Es existiert eine Datei cron unter /etc/default. In diese muß SHELL=/bin/bash
eingetragen werden. Dann läufts.
Verstehe aber trotzdem nicht ganz warum das mit den Variablen in der crontab nicht funktioniert, da ich diese Möglichkeit auch schon mehrmals gelesen habe. Vermute es liegt tatsächlich an der Version.
Trotzdem Danke für die Unterstützung bei der Suche nach der Lösung
 

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

Crontab und Scripts - Problem

Welches Linux/Unix für ehemaligen OSX Nutzer?

Bashscript aus Debian6 läuft nicht auf Debian7

Shellskript - Fehler in Cron

Zurück
Oben