Я создал задание cron для запуска URL-адреса в заданное время, которое, в свою очередь, запускает скрипт импорта продукта. Но по какой-то причине часть URL-адреса триггера с параметрами удалена.
Я установил задание cron так:
/usr/bin/wget -O /dev/null http://domain.nl/wp-cron.php?import_key=XXXXXXXXXX&import_id=3&action=processing
Но это только работает http://domain.nl/wp-cron.php?import_key=XXXXXXXXXX
. Где последняя часть, которая фактически говорит сценарию, что делать?
Кто знает, почему он так себя ведет и как заставить его работать?
Из-за этого вы фактически говорите cron запустить /usr/bin/wget -O /dev/null http://domain.nl/wp-cron.php?import_key=XXXXXXXXXX
в фоновом режиме, а затем сделать action=processing
. И это то, что cron делает для вас - то, что вы ему сказали.
Чтобы обойти это, вам нужно избежать &
символ, так что он обрабатывается как часть URL-адреса, а не интерпретируется как управляющий символ.
Самое простое решение - заключить URL-адрес в кавычки.
В дополнение к уже упомянутому амперсанду вы также должны быть осторожны с %
символ в записи cron. %
запись в cron будет интерпретироваться как разрыв строки и должна быть экранирована обратной косой чертой (\%
). Убедитесь, что import_key
что вы подверглись цензуре, не имеет такого характера. Кроме того, URL-адреса часто содержат %
в них, чтобы избежать определенных символов, таких как пробел (),
=
, и т.д.