я пытаюсь запустить скрипт с 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\%$`
Спасибо!