Tôi có một tập lệnh bash đang truy xuất thông tin từ cơ sở dữ liệu của mình, dựa trên thông tin mà nó nhận được, tạo một số thư mục chứa các tệp WP trên mỗi tệp và sau đó thực hiện cài đặt. Tập lệnh hoạt động hoàn hảo khi tôi gọi nó theo cách thủ công, tuy nhiên, WP CLI không hoạt động khi được gọi từ Cronjob ubuntu của tôi
Đây là kịch bản bash:
#!/bin/bash
set -f # vô hiệu hóa toàn cầu
IFS=$'\n' # đặt dấu tách trường thành NL (chỉ)
arr=($(sudo mysql -u root -h localhost -e "SỬ DỤNG mysite; CHỌN * TỪ các trang web WHERE status = 'pending'" | awk 'NR>1'))
cho tôi trong "${arr[@]}"
làm
siteid=$(echo $i | awk '{print $1}')
instance=$(echo $i | awk '{print $2}')
chủ sở hữu=$(echo $i | awk '{print $3}')
status=$(echo $i | awk '{print $4}')
tạm thời=$(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 "TẠO cơ sở dữ liệu $url; CẤP tất cả các đặc quyền trên $url.* cho $dbuser@'localhost' được xác định bởi '$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 cấu hình lõi --dbname=$url --dbuser=$dbuser --dbpass=$dbpass --dbprefix=$dbprefix;
cd /var/www/mysite.com/$url && /usr/local/bin/wp cài đặt lõi --url=www.mysite.com/$url --title=$title --admin_user=$admin_user --admin_password =$admin_password --admin_email=$admin_email;
xong
Và đây là cronjob (được chạy với quyền root)
* * * * * /bin/bash /home/iosef/createinstanceinfolder.sh >/dev/null 2>&1
Bất kỳ ý tưởng?