У меня есть сценарий bash, который извлекает информацию из моей базы данных, на основе полученной информации создает несколько папок, содержащих файлы WP, в каждой из них, а затем выполняет настройку. Сценарий отлично работает, когда я вызываю его вручную, однако WP CLI не работает, когда вызывается из моего Ubuntu Cronjob.
Вот bash-скрипт:
#!/бин/баш
set -f # отключить подстановку
IFS=$'\n' # установить разделитель полей в NL (только)
arr=($(sudo mysql -u root -h localhost -e "ИСПОЛЬЗОВАТЬ мой сайт; ВЫБЕРИТЕ * ИЗ сайтов, ГДЕ статус = 'ожидание'" | awk 'NR>1'))
для i в "${arr[@]}"
делать
siteid=$(echo $i | awk '{print $1}')
instance=$(echo $i | awk '{print $2}')
владелец=$(эхо $i | awk '{print $3}')
status=$(echo $i | awk '{print $4}')
временный URL=$(эхо $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 "СОЗДАТЬ базу данных $url; ПРЕДОСТАВИТЬ все привилегии на $url.* для $dbuser@'localhost', идентифицированного '$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;
сделано
А вот и cronjob (запускается от имени root)
* * * * * /bin/bash /home/iosef/createinstanceinfolder.sh >/dev/null 2>&1
Есть идеи?