Проблема заключается в очень ограниченном пути поиска переменных crontab. Полный путь должен быть добавлен, чтобы добавить почти все ваши команды во все ваши скрипты и индексы. Или вы можете добавить один и тот же путь к сценарию, который у вас есть при запуске скрипта вручную.
Изменить с:
#!/bin/sh
list="/var/www/html/site"
config="/usr/bin/php"
for i in "$list"
do
"$config" "$i"/update.php
done
Изменить с:
#!/bin/sh
PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
list="/var/www/html/site"
config="/usr/bin/php"
for i in "$list"
do
"$config" "$i"/update.php
done
Примечание:
Добавленный поиск путей был взят из того, что вы опубликовали в своем вопросе, которые работают при запуске скрипта вручную. Если вы знаете, какой путь содержит команду из сценария вместе с любым скриптом или командой, вызванной скриптом update.php, то это единственные пути поиска, которые необходимо добавить.