1. Для запуска каждую ночь можно использовать cron,
2. Для запуска при обновлении с репозитория существуют вебхуки.
Запускать по расписанию смысла я не вижу никакого. Только при обновлении с репы как часть процесса деплоя
Средства для этого есть готовые или нужно писать что-то для терминала самому?
Все звисит от того что и как вы обновляете