Проверка статуса URL в базе данных mysql с использованием CURL и сценария оболочки - PullRequest
1 голос
/ 11 июля 2010

Добрый день,

У меня есть простая база данных MySQL с 1 таблицей и 3 полями

Таблица: LINKS
Поля: ID URL STATUS

В таблице около 3 миллионов ссылок.
Я хотел бы проверить все URL-адреса и опубликовать их возвращенный статус в поле статуса, чтобы позже я мог удалить битые ссылки.

Для этого, вероятно, потребуется сценарий оболочки, так как он будет работать в течение длительного времени.
Я думаю, что заголовки CURL могут обеспечить лучший способ проверки кода состояния, но я не знаю, как это сделать.положить все это вместе.Буду очень признателен за любую помощь по вышеизложенному или предложение о лучшем способе справиться с этим.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2014

Следующий скрипт может помочь вам в получении статуса, не сделал sql с этим так:

for URL in //get urls from mysql
do
        STATUS=$(curl -s -o  /dev/null -w '%{http_code}' $URL)
        //set status value in "status" in mysql


done
0 голосов
/ 11 июля 2010

Я бы предпочел сделать это партиями, скажем, тысячами, и вместо этого в bash, я бы сделал это на PHP или Perl (или любом другом языке сценариев по вашему выбору, например, Python).

PHP имеет fopen , который будет выполнять работу CURL, поэтому вам не придется создавать отдельный системный вызов для каждой проверки ссылок. Соединение с MySQL также почти как в PHP, так и в Perl.

...