Не понимаю простой скрипт Perl в моем crontab

Прежде всего, извините за мой английский, это также мой первый вопрос (не знаю, что я делаю :)). Я пытаюсь отредактировать свою работу cron и перечислить «мои» запланированные задачи, которые я нашел:

*/5 *   *   *   *   perl /usr/bin/hm_fix.pl > /dev/null 2<&1

Сам скрипт:

#!/usr/bin/perl -w
# Script to fix some migrations
$gateway = `netstat \-rn \|grep \^0\.0\.0\.0 \|awk \'\{print \$2\}\'`;
if (($gateway eq "") || ($gateway eq "\n")) {
    exit 1;
}
else {
   `ping -c1 $gateway`; 
}

Похоже, это какой-то "сетевой" поиск или что-то в этом роде. Это CentOs 6.5 с установленной панелью Plesk. Я погуглил имя скрипта и ничего не нашел...

Большое спасибо за вашу помощь.


person antonrodin    schedule 16.11.2016    source источник


Ответы (1)


Это действительно сценарий оболочки, который был написан на Perl кем-то, кто не очень хорошо знал Perl :-/

И комментарий на самом деле не совпадает с тем, что делает программа.

Он запускает netstat -rn и передает выходные данные через grep для поиска строки, начинающейся с 0.0.0.0. Затем он передает эту строку через awk '{ print $2 }', чтобы получить IP-адрес шлюза по умолчанию.

Если это не возвращает IP-адрес, программа завершает работу с ошибкой. Если он получает IP-адрес, то отправляет одиночный пакет ping на этот адрес, а затем завершает работу.

person Dave Cross    schedule 16.11.2016
comment
Я не мог понять, пригодится ли код возврата от ping. Но в остальном да, на самом деле это не очень похоже. - person Sobrique; 16.11.2016
comment
@Sobrique Он даже не отображает вывод ping. Это плохо написанная и бессмысленная программа. - person Dave Cross; 16.11.2016
comment
ping может вызвать arp и это ... Я не знаю, может что-то сделать. - person Sobrique; 16.11.2016
comment
@Sobrique Дэйв, я видел что-то подобное раньше ... кто-то выполнял сетевую миграцию серверов на другой шлюз, но вместо опроса, приманки, сниффинга или чего-то подобного каждый сервер пинговал маршрутизатор, а затем считал записи кэша arp на маршрутизаторе, чтобы определить, какие серверы еще не были изменены. Нигде не разумный способ делать вещи, но я видел незнакомца. - person stevieb; 16.11.2016
comment
Большое спасибо. Думаю, оставлю :)) Вроде безобидно. - person antonrodin; 17.11.2016