У меня есть два сценария оболочки с именем: 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