Использование lynx или wget в cron для вызова php-скрипта?
Я изучаю конкретную настройку, и у них есть свой crontab следующим образом:
0 * * * * lynx http://www.example.com/cron/scriptA.php
Конечно, это зависит от принципа "безопасность за неизвестностью", потому что любой человек в Интернете, зная, где находятся эти файлы, может вызвать их и потенциально перегружать сервер.
Кроме того, есть ли что-то изначально неправильное в приведенной выше "модели" запуска этого скрипта.
Когда я тестировал lynx http://www.example.com/cron/scriptA.php из командной строки от имени пользователя root, он предложил мне загрузить cookie-файл сеанса, поэтому я решил, по крайней мере, изменить приведенное выше:
lynx -accept_all_cookies http://www.example.com/cron/scriptA.php
Или я должен использовать:
wget -q -O /dev/nul http://www.example.com/cron/scriptA.php
1 ответ
Если вы хотите защитить эти файлы, вы можете настроить свой веб-сервер таким образом, чтобы разрешать подключения к этим конкретным сценариям только с локального хоста. Вы не упомянули, какой веб-сервер вы используете, но, например, в Apache это можно сделать с помощью комбинации параметров Directory и Allow/Deny, что-то вроде
<Directory /cron>
Order deny,allow
Deny from all
Allow from localhost
</Directory>
Для дополнительной безопасности вы можете изменить свои скрипты cron для проверки адреса клиента. Если это не localhost, откажитесь от магии cron и верните что-нибудь еще.
Когда дело доходит до инструментов, lynx и wget в порядке. Когда я использую lynx в cron, я обычно использую его с флагом -dump.