ฉันมีสคริปต์ทุบตีซึ่งกำลังดึงข้อมูลจากฐานข้อมูลของฉัน ตามข้อมูลที่ได้รับจะสร้างบางโฟลเดอร์ที่มีไฟล์ WP ในแต่ละอัน จากนั้นทำการตั้งค่า สคริปต์ทำงานได้อย่างสมบูรณ์แบบเมื่อฉันเรียกใช้ด้วยตนเอง แต่ WP CLI dosent จะทำงานเมื่อถูกเรียกจาก Ubuntu Cronjob ของฉัน
นี่คือสคริปต์ทุบตี:
#!/bin/bash
set -f # ปิดการใช้งาน globbing
IFS=$'\n' # ตั้งค่าตัวคั่นฟิลด์เป็น NL (เท่านั้น)
arr=($(sudo mysql -u root -h localhost -e "USE mysite;SELECT * FROM sites WHERE status = 'pending'" | awk 'NR>1'))
สำหรับฉันใน "${arr[@]}"
ทำ
siteid=$(echo $i | awk '{พิมพ์ $1}')
instance=$(echo $i | awk '{พิมพ์ $2}')
Owner=$(echo $i | awk '{พิมพ์ $3}')
สถานะ=$(echo $i | awk '{พิมพ์ $4}')
temporaryurl=$(echo $i | awk '{พิมพ์ $5}')
url=$(echo $i | awk '{พิมพ์ $6}')
dbname=$(echo $i | awk '{พิมพ์ $7}')
dbuser=$(echo $i | awk '{พิมพ์ $8}')
dbpass=$(echo $i | awk '{พิมพ์ $9}')
dbprefix=$(echo $i | awk '{พิมพ์ $10}')
title=$(echo $i | awk '{พิมพ์ $11}')
admin_user=$(echo $i | awk '{พิมพ์ $12}')
admin_password=$(echo $i | awk '{พิมพ์ $13}')
admin_email=$(echo $i | awk '{พิมพ์ $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 ติดตั้งหลัก --url=www.mysite.com/$url --title=$title --admin_user=$admin_user --admin_password =$admin_password --admin_email=$admin_email;
เสร็จแล้ว
และนี่คือ cronjob (รันในฐานะรูท)
* * * * * /bin/bash /home/iosef/createinstanceinfolder.sh >/dev/null 2>&1
ความคิดใด ๆ