Назад | Перейти на главную страницу

Мой сценарий оболочки отлично работает с помощью команды putty, но когда я помещаю его в crontab, он не работает

У меня есть два сценария оболочки с именем: backup_inventory_sourcecode.sh и backup_bash.sh. Я запускаю эти два файла .sh в качестве шпатлевки следующим образом:

sh /var/www/html/backup_inventory_sourcecode.sh
sh /var/www/html/backup_bash.sh 

он работает успешно и создал файл zip и файл sql соответственно. Содержимое backup_inventory_sourcecode.sh:

#!/bin/bash

NOW=$(date +"%m_%d_%Y")


sudo zip -r /inventory_sourcecode_backup/inventory_backup_${NOW}.zip /var/www/html/inventory -x ".git"

sync
/var/www/html/ftpupload.sh /inventory_sourcecode_backup/inventory_backup_${NOW}.zip

а содержимое backup_bash.sh:

#!/bin/bash
NOW=$(date +"%m_%d_%Y_%H_%M_%S")
NOW=${NOW}_Inventory
mysqldump -u root -pAplrootuser  db_apl_inventory >/db_backup/${NOW}.sql

#sleep 30
/var/www/html/ftpupload.sh /db_backup/${NOW}.sql

Теперь я помещаю в crontab две строчки:

*/1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh
*/1 * * * * sh /var/www/html/backup_bash.sh

они должны создать файлы .zip и .sql соответственно. но он создает только файл .sql. Это доказывает только */1 * * * * sh /var/www/html/backup_bash.sh работает, но не */1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh. В чем проблема.

Путь Cron по умолчанию зависит от реализации, поэтому проверьте свою страницу руководства.

Вы можете определить свой собственный PATH переменная в вашем файле crontab.

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
*/1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh
*/1 * * * * sh /var/www/html/backup_bash.sh