Puncte:-1

WP-CLI nu rulează din cronjob

drapel cn

Am un script bash care preia informațiile din baza mea de date, pe baza informațiilor pe care le primește creează niște foldere care conțin fișierele WP pe fiecare și apoi efectuează setarea. Scriptul funcționează perfect când îl apelez manual, totuși WP CLI funcționează atunci când este apelat din Cronjob-ul meu ubuntu

Iată scriptul bash:

#!/bin/bash 

set -f # dezactivează globbing
IFS=$'\n' # setați separatorul de câmpuri la NL (doar)



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



pentru i în „${arr[@]}”
do
siteid=$(echo $i | awk '{print $1}')
instance=$(echo $i | awk '{print $2}')
proprietar=$(echo $i | awk '{print $3}')
stare=$(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 „{printează $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 "CREAȚI baza de date $url; Acordați toate privilegiile pe $url.* lui $dbuser@'localhost' identificat prin '$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_parola --admin_email=$admin_email;


Terminat

Și aici este cronjob (este rulat ca root)

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

Vreo idee?

vautee avatar
drapel kr
Există vreo ieșire de eroare din jobul tău cron în /var/log/syslog? Poate eliminați partea >/dev/null 2>&1, astfel încât să vedeți orice erori care apar. Adaugă-le la întrebarea ta.
user9517 avatar
drapel cn
Dublatul vă va ajuta aproape sigur să vă rezolvați problema, dacă nu o face, vă va ajuta să culegeți informații care vor ajuta oamenii să vă ajute.
drapel cn
Acum primesc eroarea, spune asta: Eroare: YIKES! Se pare că rulați asta ca root. Probabil ați vrut să rulați acest lucru ca utilizator sub care există instalarea dvs. WordPress. Dacă într-adevăr vrei să rulezi asta ca root, nu te vom opri, dar ține cont de faptul că orice cod de pe acest site va avea controlul deplin asupra serverului tău, făcându-l destul de PERICULOS.
drapel cn
Dacă doriți să continuați ca root, vă rugăm să rulați acest lucru din nou, adăugând acest indicator: --allow-root Dacă doriți să îl rulați ca utilizator în care se află acest site, puteți rula următoarele pentru a deveni utilizatorul respectiv: sudo -u USER -i -- wp
Puncte:0
drapel cn

user9517 a oferit răspunsul: Răspunde asta la întrebarea ta? De ce nu funcționează crontab-ul meu și cum îl pot depana? â

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.