我想设置一个cronjob给我一个git pull和其他零碎的东西。
我的工作看起来像这样:
cd /var/www/project; git pull; composer install; composer update;
但它永远不会有效我尝试在本地进行更改,并推动它,我从未见过我必须手动git拉动的变化,为什么会发生这种情况?我不知道为什么我会在这里获得要点,这些都是明星。
在cron.log中我得到:
Jun 14 09:38:32 ip-172-31-24-22 cron[19247]: (CRON) INFO (pidfile fd = 3)
Jun 14 09:38:32 ip-172-31-24-22 cron[19247]: (CRON) INFO (Skipping @reboot jobs -- not $
Jun 14 09:39:01 ip-172-31-24-22 CRON[19256]: (root) CMD (php /var/www/project/artisa$
Jun 14 09:39:01 ip-172-31-24-22 CRON[19257]: (root) CMD (cd /var/www/project; git pu$
$ionclean ] && /usr/lib/php/sessionclean)
Jun 14 09:39:02 ip-172-31-24-22 CRON[19254]: (CRON) info (No MTA installed, discarding $
//
Already up-to-date.
/bin/sh: 1: composer: not found
/bin/sh: 1: composer: not found
答案 0 :(得分:1)
因此,要修复/bin/sh: 1: composer: not found
,您可以设置绝对路径而不是程序名称。
要知道composer
的位置:
$ whereis composer
composer: /usr/bin/composer /usr/share/man/man1/composer.1.gz
您需要的是/usr/bin/composer
。
因此您可以根据以下内容更新您的cron行:
* * * * * cd /var/www/project && git pull && /usr/bin/composer install && /usr/bin/composer update
顺便说一下,这里有一些提示:
&&
而不是;
(除非您知道自己在做什么)。/usr/bin/git
)。cd
并不是那么好,您应该看看是否可以向git
&添加参数。 composer
命令从具有相同行为的任何地方运行它。