Ich habe ein Problem mit der Syntax in einer Bash.
Hier meine Aufgabenstellung:
Ich möchte den backuppc per cronjob steuern (hab ich schon gelöst).
Dazu habe ich einen Cron-job, der mir folgende Bash-Datei aufruft
Code: Alles auswählen
#/bin/bash
if [ "$(date +%w)" = "5" ]; then #Wochentag aus Systemzeit extrahieren und Freitag (5) abfragen
auszuführender backuppc-Befehl
fi
Code: Alles auswählen
0 10 1-7 * * root ["$(date +%w)" = "5"] && auszuführender backuppc-Befehl
ich habe ein etwas komplexeres Bash-File
Code: Alles auswählen
#!/bin/bash
#Auslesen Wochentag
WOCHENTAG=`date +%w`
#Auslesen Monatgstag
MONATSTAG=`date +%d`
#echo "Heute ist der $MONATSTAG, der $WOCHENTAG Tag der Woche"
if [[ $MONATSTAG -ge 1 && $MONATSTAG -le 7 && $WOCHENTAG -eq 5 ]]; then
auszuführender Backuppc-Befehl full backup
else
auszuführender Backuppc-Befehl inkrementales Backup
fi
exit 0
Könnte man sowas auch in eine Zeile packen und direkt in die Crontab setzen?
Die Abfragen für
"1. Tag im Monat oder mehr" und "7. Tag im Monat oder weniger" und "Wochentag ist Freitag"
(sehe gerade, die erste Abfrage "1. Tag und höher" könnte ich weglassen ... )
kann ich mit && verketten und würde mit dann auch den Befehl für das Vollbackup ausführen.
Bekomme ich aber auch die Else-Anweisung für das inkrementelle mit rein?
Bei Befehlen (z.B.: ping) kann ich ja "Erfolg" und "Misserfolg" mit || trennen.
Bei obigen einzeiler klappt das irgendwie nicht. Kann man die Anweisung auch noch komplett Klammern?
Irgendwie bekomme ich das nicht hin.
Wäre für Eure Hilfe echt dankbar.
Gruß
Robert Kraus