Администрируя нагруженные проекты, возникает проблема повторного запуска cron задач, т.е. когда во время выполнения одного скрипта, cron запускает второй такой же скрипт. Такие ситуации порой приводят к некорректным результатам работы скрипта и другим проблемам (зависит от самого скрипта).
Как запретить двойной запуск cron задач?
Самое простое в Linux, что можно придумать это воспользоваться утилиткой flock.
Утилита принимает имя лок-файла и команду для выполнения. Как он работает: flock ставит лок на указанный файл и если лок поставлен успешно, тогда запускает указанную команду.
Итого имеем:
* * * * * /usr/bin/flock -n /tmp/email.lock -c "/usr/bin/perl /home/zvonilka/send_email3.pl" >> /var/log_email 2>&1
* * * * * (sleep 30; /usr/bin/flock -n /tmp/email.lock -c "/usr/bin/perl /home/zvonilka/send_email3.pl" >> /var/log_email 2>&1)
Кстати, тут еще показано как просто можно научить cron запускать задачу каждые 30 секунд.