Script per Cronjob ausführen.

Lord_Icon

Member
Hi,

ich hab n super easy script mal schnell runtergetippt.
Dies wird per cronjob jede nacht ausgeführt und soll gewisse Bereiche sichern.

Führe ich das Script per Hand aus = klappt es.
Führt es cron aus, klappt es nicht.

Cron selbst startet aber aber das Script, da ich Email bekomme (siehe vorletzte Zeile)

Code:
#!/bin/bash

#umask 022

#PATH=/sbin:/bin:/usr/sbin:/usr/bin
#export PATH


DATE=`/sbin/date '+%d'`

if [ $DATE = 01 ];
then
        cd /root/backup/
        ./tag_1_backup.sh
fi


if [ $DATE = 07 ];
then
        /root/backup/tag_7_backup.sh
fi


if [ $DATE = 14 ];
then
        /root/backup/tag_14_backup.sh
fi


if [ $DATE = 21 ];
then
        cd /root/backup/
        ./tag_21_backup.sh
fi

# !!!!!!!!!!!!!!!!!!!!!! Zum Testen = später löschen !!!!!!!!!!!!!!!!!!!!!!!!!!
if [ $DATE = 17 ];
then
        /root/backup/tag_14_backup.sh
fi

echo "Backupdatei ausgeführt" | mail -s"Es gab nix zu tun" info@domain.de
exit 0

Die Mail "Es gab nix zu tun" erhalte ich. Also führt er das Script aus.
In der Datei die er zum 17ten ausführen soll steht gleich als erstes der Befehl das eine Mail rausgeschickt werden soll (wie oben nur mit anderen Betreff. DIESE Mail bekomme ich aber nur, wenn ich das Script per Hand ausführe.
Cron selbst startet die Datei aber nicht.

Warum geht das ganze nicht ?
Noch einfacher kann man es doch nun wirklich nicht machen.

Danke für eure Tipps
 
Hi,

ich hab grad mal n .forward eingerichtet, damit ich mal ne Mail bekomme, was schiefläuft.

/root/backup/backup.sh: line 39: /root/backup/tag_14_backup.sh: cannot execute binary file

Die Datei hat die gleichen Rechte wie das Script selbst, was tag_14_backup.sh aufruft. Desweiteren gehören alle Datein auch root:root

Versteh ich alles nicht. :mad:
 
Uff... toller Befehl. :eek:

0000000 # W i r d a u s g e f ü h r t
0000020 , w e n n h e u t e d e r
0000040 1 4 t e i s t \n \n # ! / b i
0000060 n / s h \n \n e c h o " B a c k
0000100 u p d a t e i a u s g e f ü h
0000120 r t " | m a i l - s " S t
0000140 a r t e B a c k u p " i n f
0000160 o @ d o m a i n . d e \n \n \n # # L
0000200 e g e V e r z e i c h n i s s
0000220 a n \n m k d i r - p / B A
0000240 C K U P \n \n
0000246

hier vllt. noch mal in Klartext:
#Wird ausgeführt, wenn heute der 14te ist

#!/bin/sh

echo "Backupdatei ausgeführt" | mail -s"Starte Backup" info@domain.de


## Lege Verzeichniss an
mkdir -p /BACKUP
 
:eek: Huhu.... jetzt klappt das ja.

VIELEN Dank.... hab schon überall gesucht... aber das mit den Shebang hab ich doch glatt ignoriert :o
 
Back
Top