Проверка ссылок при переезде на другой веб-сервер
При смене веб-сервера необходимо автоматически проверить работоспособность ссылок. Минимум - чтобы совпадали коды ответов сервера (200 = 200, 404 = 404), делается это с помощью программы linkchecker, которая способна формировать сразу готовый SQL-файл. А сравнение ответов уже делать с помощью MySQL.
Проверка ссылок по кодам ответа
Для сверки получаем два списка
linkchecker -v http://site.ru -osql -Fsql linkchecker -v http://new.site.ru -osql -Fsql
Далее вставляем записи в таблицу:
CREATE TABLE `linksdb` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `urlname` VARCHAR(256) DEFAULT NULL, `parentname` VARCHAR(256) DEFAULT NULL, `baseref` VARCHAR(256) DEFAULT NULL, `valid` INT(11) DEFAULT NULL, `result` VARCHAR(256) DEFAULT NULL, `warning` VARCHAR(512) DEFAULT NULL, `info` VARCHAR(512) DEFAULT NULL, `url` VARCHAR(256) DEFAULT NULL, `line` INT(11) DEFAULT NULL, `col` INT(11) DEFAULT NULL, `name` VARCHAR(256) DEFAULT NULL, `checktime` INT(11) DEFAULT NULL, `dltime` INT(11) DEFAULT NULL, `size` INT(11) DEFAULT NULL, `cached` INT(11) DEFAULT NULL, `level` INT(11) NOT NULL, `modified` VARCHAR(256) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_search` (`result`,`urlname`), KEY `idx_search_2` (`urlname`,`result`) ) ENGINE=InnoDB;
Перед вставкой «второй порции» переименовываем таблицу. Сравнение:
SELECT linksdb.urlname FROM linksdb JOIN linksdb_origin ON linksdb.urlname = linksdb_origin.urlname WHERE linksdb.result = '404 Not Found' AND linksdb_origin.result = '200 OK';