Zum Inhalt springen

Shell Skript: Backup nur an bestimmten Tagen

Erstellt am 17. Dezember 2013 · Noch keine Antworten

Tags: Frage

sqesqe ·

Hallo,

ich verwende folgendes Shell Skript als Cronjob für das Backup meiner files (nachfolgend ein Ausschnitt):

dayofmonth=`date '+%d'`
dayofweek=`date '+%A'`

db1name=xxx
db1=xxx
user1=xxx
pass1=xxx

if [ "$dayofweek" = "Wednesday" || "$dayofweek" = "Sunday" ]
 then

rm typo3cms/system/backup/files/$db1name.$dayofweek*
tar -cf typo3cms/system/backup/files/$db1name.$dayofweek typo3cms/$db1name
gzip -f typo3cms/system/backup/files/$db1name.$dayofweek

Ich möchte also, dass die files nur Mittwochs und Sonntags gesichert werden. Allerdings scheint die if-Abfrage nicht zu funktionieren. Meine Vermutung ist, dass das logische Oder nicht erkannt wird. Ich konnte aber keine weitere Dokumentation finden, wie ich die Abfrage korrekt schreiben kann.

Kann mir da jemand helfen?

----------

EDIT: Habe das Problem selbst lösen können. Für diejenigen, die es interessiert:

Ich habe die $dayofweek Abfrage geändert in dayofweek=`date '+%w'` um Zugriff auf die einzelnen Tage per numerischen Werten zu haben (s. http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/). Dabei entspricht 0 = Sonntag, 1 = Montag, 2 = Dienstag usw.

Das logische Oder selbst kann in der if-Abfrage dann mit -o verwendet werden. In meinem Fall wäre das also:

if [ "$dayofweek" = "0" -o "$dayofweek" = "3" ]
then
...

Somit funktioniert das Skript wie gewünscht.

Viele Grüße