Как добавить сценарий удара к заданию крона?

Мне назвали сценарий backup.sh:

#!/bin/bash
sudo zip -r /home/jazuly/backup.zip /var/lib/automysqlbackup/
cd /home/jazuly/backupscript/cp2google/
php cp2google.php /home/jazuly/backup.zip
cd ~
rm -f /home/jazuly/backup.zip

Я сделал это исполняемым файлом:

sudo chmod +x backup.sh

Затем я пытался отредактировать cronс crontab -e.

Я добавляю:

# m h dom mon dow command
0 0 * * * /home/jazuly/backup.sh

но когда cron отправляет backup.zip в мою электронную почту, я загружаю и открываю ее, и файл поврежден.

Если я запускаю скрипт вручную с:

$ sudo chmod +x backup.sh 
$ ./backup.sh

Я могу открыть zip-файл.

4
задан 16 June 2017 в 06:47

3 ответа

Вот шаги того, как я зафиксировал его:

  1. Разрешение Изменения & Владелец var/lib/automysqlbackup лет к 777 & jazuly.jazuly.
  2. Перемещение все папки & файлы от backupscript/cp2google/ до home/jazuly.
  3. Использование wait для каждого оператора.
  4. Мой заключительный код:

    #!/bin/bash
    zip -r backup.zip /var/lib/automysqlbackup/
    wait
    php cp2google.php backup.zip
    wait
    rm -f backup.zip
    

    И мой cron:

    0 0 * * * /home/jazuly/backup.sh
    

    для резервного копирования каждую полночь/день.

    я не думаю, что существует потребность записать полный путь, если .sh файл находится в том же пути с тем, что Вы хотите выполнить.

1
ответ дан 1 December 2019 в 09:20

Необходимо будет использовать полный путь в выполняемом сценарии любого крона. Так, не делайте cd ~, давайте вместо этого cd /home/jazuly

Для дальнейшей отладки, можно также перенаправить вывод сценария крона в файл, с /home/jazuly/backup.sh 1> /home/jazuly/log.txt 2> /home/jazuly/err.txt

Так целая команда:

# m h dom mon dow command
0 0 * * * /bin/bash /home/jazuly/backup.sh 1> /home/jazuly/log.txt 2> /home/jazuly/err.txt
3
ответ дан 1 December 2019 в 09:20

Попытайтесь использовать полные пути

#!/bin/bash
/usr/bin/zip -r /home/jazuly/backup.zip /var/lib/automysqlbackup/
/usr/bin/php /home/jazuly/backupscript/cp2google/cp2google.php /home/jazuly/backup.zip
rm -f /home/jazuly/backup.zip

И добавить /bin/bash в кроне

# m h dom mon dow command
0 0 * * * /bin/bash /home/jazuly/backup.sh

И полномочия проверки для файлов backup.zip, backupdatabaseterbaru-c771cd4f4fcf.p12

2
ответ дан 1 December 2019 в 09:20

Другие вопросы по тегам:

Похожие вопросы: