Никогда не используйте блокировку файл всегда используйте блокировку каталог .
В вашем конкретном случае это не так важно, потому что запуск скрипта запланирован через 5 минут. Но если вы когда-нибудь повторно используете этот код для cgi-скрипта веб-сервера, вы просто тост.
if mkdir /tmp/my_lock_dir 2>/dev/null
then
echo "running now the script"
sleep 10
rmdir /tmp/my_lock_dir
fi
Это имеет проблему, если у вас есть устаревшая блокировка, означает, что блокировка есть, но нет связанного процесса. Твой крон никогда не побежит.
Зачем использовать каталог? Потому что MKDIR это атомная операция. Только один процесс за раз может создать каталог, все другие процессы получают ошибку. Это работает даже для общих файловых систем и, возможно, даже для разных типов ОС.