web-dev-qa-db-ja.com

cron(elysia cron)でdrushを実行する方法は?

問題

Cron(具体的にはelysia cron)をDrushで実行できません。私は this をガイドとして使用しています。何を逃した/間違ったのですか?

私のCrontab

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
COLUMNS=80

*/5 * * * * /usr/bin/drush @main elysia-cron
* * * * * env > /tmp/cronenv.log

チェックリスト:

  • 私のcrontabにwww-dataを使用しました。これはデフォルトのnginxサーバーユーザーです。
  • Drush(/usr/bin/drush)へのパスは、which drushから取得されます。
  • サイトのエイリアス@mainを使用しました。私はこれをcronの外でテストし、コマンドdrush @main elysia-cronはcronを実行しますが、1時間に1回だけです( この問題 を参照)。このcronは5分ごとに実行されるため、1時間に1回は機能するはずです。

上記のドキュメントのフォーマットも試しました:

*/5 * * * * /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin COLUMNS=80 /usr/bin/drush @main elysia-cron
1
Dominic Woodman

--rootの代わりに--uri@mainを使用する方がおそらく簡単でしょう。 Drushはユーザーごとにエイリアスを読み込みます。テストしているユーザーdrush @main elysia-cronは、@mainのエイリアスファイルで~/.drushエイリアスが定義されている可能性があります。エイリアスをグローバルな場所に移動するか、エイリアスファイルをwww-dataユーザーの.drushフォルダにコピーする必要があります。

3
greg_1_anderson
drush --root=/var/your website/ elysia-cron
0
Dilip

エイリアスのDrushフォルダを~/.drushからデフォルトのサーバーユーザーのホーム/var/wwwにコピーしました:www-data

私が使用したUbuntuのコマンドは次のとおりです。

cp -r ~/.drush /var/www
0
Dominic Woodman

Bashスクリプトを/var/www/scripts/elysia_cron.shにするだけです

cd /var/www #put your path to the document root which add centext  
/usr/bin/drush elysia-cron

このスクリプトをcronで開始します

*/5 * * * * /var/www/scripts/elysia_cron.sh
0
SebaZ