Я изучаю конкретную настройку, и у них есть следующий crontab:
0 * * * * lynx http://www.example.com/cron/scriptA.php
Конечно, здесь используется принцип «безопасность за счет неизвестности», потому что любой человек в Интернете, зная, где находятся эти файлы, может позвонить им и потенциально перегрузить сервер.
Кроме того, есть ли что-то принципиально неправильное в приведенной выше «модели» запуска этого скрипта.
Когда я тестировал рысь 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
Если вы хотите защитить эти файлы, вы можете настроить свой веб-сервер так, чтобы подключения к этим конкретным сценариям разрешались только с localhost. Вы не упомянули, какой веб-сервер используете, но, например, в Apache это можно сделать с помощью комбинации Каталог и Разрешить / Запретить параметры, что-то вроде
<Directory /cron>
Order deny,allow
Deny from all
Allow from localhost
</Directory>
Для дополнительной безопасности вы можете изменить свои скрипты cron, чтобы проверять адрес клиента. Если это не localhost, откажитесь от магии cron и верните что-нибудь еще.
Когда дело доходит до инструментов, lynx и wget подходят. Когда я использую lynx в cron, я обычно использую его с -дамп флаг, правда.