У меня есть сценарий bash, который извлекает информацию из моей базы данных, на основе полученной информации создает несколько папок, содержащих файлы WP, в каждой из них, а затем выполняет настройку. Сценарий отлично работает, когда я вызываю его вручную, однако WP CLI не работает, когда вызывается из моего Ubuntu Cronjob.

Вот bash-скрипт:

#!/bin/bash 

set -f        # disable globbing
IFS=$'\n'     # set field separator to NL (only)



arr=($(sudo mysql -u root -h localhost  -e "USE mysite;SELECT * FROM sites WHERE status = 'pending'" | awk 'NR>1'))



for i in "${arr[@]}"
do
siteid=$(echo $i | awk '{print $1}')
instance=$(echo $i | awk '{print $2}')
owner=$(echo $i | awk '{print $3}')
status=$(echo $i | awk '{print $4}')
temporaryurl=$(echo $i | awk '{print $5}')
url=$(echo $i | awk '{print $6}')
dbname=$(echo $i | awk '{print $7}')
dbuser=$(echo $i | awk '{print $8}')
dbpass=$(echo $i | awk '{print $9}')
dbprefix=$(echo $i | awk '{print $10}')
title=$(echo $i | awk '{print $11}')
admin_user=$(echo $i | awk '{print $12}')
admin_password=$(echo $i | awk '{print $13}')
admin_email=$(echo $i | awk '{print $14}')

sudo mysql -u root -h localhost  -e "CREATE database $url;GRANT all privileges on $url.* to [email protected]'localhost' identified by '$dbpass'"

sudo cp -r /var/www/mysite.com/wordpressfiles /var/www/mysite.com/$url

sudo chown iosef:iosef -R /var/www/mysite.com/$url
sudo find /var/www/mysite.com/$url -type d -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url -type f -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url/wp-content/ -type d -exec chmod 777 {} \;
sudo find /var/www/mysite.com/$url/wp-content/ -type f -exec chmod 777 {} \;


cd /var/www/mysite.com/$url && /usr/local/bin/wp core config --dbname=$url --dbuser=$dbuser --dbpass=$dbpass --dbprefix=$dbprefix;

cd /var/www/mysite.com/$url && /usr/local/bin/wp core install --url=www.mysite.com/$url --title=$title --admin_user=$admin_user --admin_password=$admin_password --admin_email=$admin_email;


done

А вот и cronjob (запускается от имени root)

* * * * * /bin/bash /home/iosef/createinstanceinfolder.sh >/dev/null 2>&1

Любая идея?

answer

user9517 предоставил ответ: отвечает ли это на ваш вопрос? Почему мой crontab не работает и как его устранить?