У меня есть скрипт на python, который пишет мне, когда что-то меняется на сайте. Как я могу поставить это на сервер, чтобы он проверял 24 часа в сутки без необходимости держать ноутбук открытым? Любые учебники или документация были бы хорошими.
Я искал способы сделать это везде, но на самом деле не могу найти много. Я вижу, что php может быть использован для этого, но я не уверен, что это лучший способ.
Вам нужно настроить работу cron. «Cron» — это временный планировщик заданий.
Пример:
11 2 * * * /path/to/bin/python /path/to/cronjobs/sent_text.py
Этот Cron будет запускаться один раз в час в час
Вы должны запустить свой скрипт на Python как демон. То есть отсоединить его от управляющего терминала. Вы можете легко обернуть его в скрипт оболочки, как показано ниже.
#!/usr/bin/env bash
script_file=$(readlink -f "$0") #absolute path to this file
python_file=$(readlink -f "$1") #absolute path to the python script
output_file=$([[ "$2" == "" ]] && echo "/dev/null" || readlink -f "$2") #absolute path to the output file
(
exec 0>&- 0>/dev/null #close and redirect stdin
exec 1>&- 1>>"${output_file}" #close and redirect stdout
exec 2>&- 2>>"${output_file}" #close and redirect stderr
python "$python_file""$script_file" "$python_file" "$output_file") &
Сохранить этот скрипт как script.sh
и дать ему исполняемое разрешение, т.е. chmod +x script.sh
Сейчас исполняю script.sh <python script> <output file>
запустит скрипт python с stdout и stderr, перенаправленными в указанный файл вывода. Он также перезапустит скрипт python, если он будет прерван.