По основному вопросу - вести текстовый лог из скрипта.
В идеале сначала разобраться, почему падает, а потом уже городить велосипед. Скорей всего или дело в неответе чего-то удаленного или исключительная ситуация. В случае с php можно ведь вести и лог ошибок
php.net/manual/ru/function.error-log.php
в конкретно взятых скриптах прописать - куда им признаваться в своих ошибках.
По дополнительному вопросу - fail2ban
настройки по умолчанию уже содержат автобан на небольшой промежуток времени активным подбирателям.