Как добавить bash-скрипт в работу cron?
У меня есть скрипт 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
Я могу открыть почтовый файл.
3 ответа
Вот шаги, как я это исправил:
- Изменить разрешение и владелец
var/lib/automysqlbackup
в777
&jazuly.jazuly
, - Переместить все папки и файлы из
backupscript/cp2google/
вhome/jazuly
, - использование
wait
за каждое утверждение. Мой окончательный код:
#!/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
Файл находится в том же пути, с которым вы хотите выполнить.
Вам нужно будет использовать полный путь в любом скрипте cron. Так что не делай cd ~
дай вместо cd /home/jazuly
Для дальнейшей отладки вы также можете перенаправить вывод скрипта cron в файл с помощью /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
Попробуйте использовать полные пути
#!/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