Недавно, у меня спросили, есть ли способ запустить cron задание только один раз и далее прервать выполнение. Мой первоначальный ответ был — «Нет», но подумав я вспомнил, что такой способ существует…
Ведь с помощью команд cron, вы можете удалить cron задание после его выполнения, таким образом, cronjob запускается, а затем удаляет сам себя, заставляя его работать только один раз — то что надо!
Для примера, я тестировал все на своем VPS. Предположим, я хочу вызвать sh скрипт:
somescript.sh
Теперь, если я хочу, чтобы эта команда была удалена, как только она будет завершена:
- Запускаем (код выше);
- Затем используйте
crontab -l
, чтобы открыть crontab; grep -v
для поиска файла (команды);- Находим и закрываем через
| crontab -
.
Объединяем все вместе
somescript.sh; crontab -l | grep -v 'somescript.sh' | crontab -