я пытаюсь запустить скрипт с crontab на Linux следующим образом, я создаю скрипт для инкрементного резервного копирования.

когда я выполняю команду в командной строке /usr/bin/diego-backup.sh complete сценарий создает полную резервную копию системы, if not creates it incremental проблема возникает, когда я настраиваю ее для запуска через crontab 0 0 * * * (/usr/bin/diego-backup.sh complete && /usr/bin/diego-virt-starten.sh) в этом случае сценарий резервного копирования создает файл, который не является полным резервным копированием.

Кто-нибудь может сказать мне, что я делаю не так?

Сценарий 1: отключает все виртуальные машины

virsh shutdown Odoo
virsh shutdown OpenZ
virsh shutdown mssqlserver
virsh shutdown Zentyal_HOME

Сценарий 2: создает резервные копии

#cat > /usr/local/sbin/backup.sh << EOF
#!/bin/sh
BACKUPDIR=/media/backup
LASTMONTHDIR=lastmonth
TSNAME=timestamp.snar
BACKUPNAME=backup
DIRS="/"
if [ $1 == "complete" ]; then
    #Komplettes Backup
    MYDATE=complete
    #Alte Timestamps löschen
    rm -f "$BACKUPDIR/$TSNAME"
    #Alte Backups löschen
    rm -rf "$BACKUPDIR/$LASTMONTHDIR.$BACKUPNAME.d"
    #Neue alte Backups in Ordner verschieben
    mkdir "$BACKUPDIR/$LASTMONTHDIR.$BACKUPNAME.d"
    mv -f "$BACKUPDIR/$BACKUPNAME.*".tgz
"$BACKUPDIR/$LASTMONTHDIR.$BACKUPNAME.d"
else
    #Inkrementelles Backup
    MYDATE=$(date +%y%m%d)
fi
#Abzug erstellen
tar czf "$BACKUPDIR"/"$BACKUPNAME".$MYDATE.tgz --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt$
#EOF chmod +x /usr/local/sbin/backup.sh

Сценарий 3: запускает виртуальные машины

#!/bin/sh
sudo echo "Starte die Virtual Maschinen an..."
xmlfiles=( $(find /etc/libvirt/qemu/autostart/ -name '*.xml') )
for f in "${xmlfiles[@]}" ; do
 domain=$(xml2 < $f | awk -F= '$1 == "/domain/name" {print $2}')
  # only start domain if it's not already running
  if ! virsh list | grep  " ${domain} .*running" ; then
    virsh start "$domain"
  #else
    # optionally reboot domain otherwise
    #virsh reboot "$domain" 
 fi
done

Crontab, как это:

41 12 * * * /usr/bin/diego-virt-stoppen.sh >> /home/sysadm/`date +\%Y\%m\%d\%H\%M\%S`-virt-stop.log 2>&1
48 15 * * * (/usr/bin/diego-backup.sh complete && /usr/bin/diego-virt-starten.sh) >> /home/sysadm/`date +\%Y\%m\%d\%$`

Спасибо!

0