Я создал программу, которая требует последовательности команд командной строки для очистки новой информации и обновления баз данных.
Есть ли способ автоматизировать этот процесс, чтобы мне не приходилось набирать все эти вещи в терминале каждый раз, когда я сажусь? Может быть, первые 3 шага выполняются каждый час, а шаг 4 выполняется в 2 часа ночи, так как это может занять много времени.
Шаг 1: В терминале:
...Documents/dota2/dotaapi2/ python match_scraper.py
Шаг 2: В терминале
psql dota2apidb
update games set online=1 where online is null;
Шаг 3: В терминале:
...Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota
Шаг 4: В терминале: (выполняется только в 2 часа ночи)
...Documents/dota2/dotaapi2/ python gosu_merge.py
...Documents/dota2/dotaapi2/ python unticketed.py
Одно решение могло настраивать cronjobs для блокирования/разблокированного игрового каталога. Для этого выполните шаги ниже.
Удостоверяются, что демон крона установлен
sudo apt-get install cron
, Установка cronjob для выполнения за корнем
Начинает редактировать cronjob путем выдачи после команды:
sudo crontab -e
Добавляют следующие строки в редактора:
00 */1 * * * ...Documents/dota2/dotaapi2/ python match_scraper.py
01 */1 * * * psql dota2apidb
02 */1 * * * update games set online=1 where online is null;
03 */1 * * * ...Documents/dota2/gosugamers/gosugamers/spiders/ scrapy crawl dota
04 02 * * * ...Documents/dota2/dotaapi2/ python gosu_merge.py
05 02 * * * ...Documents/dota2/dotaapi2/ python unticketed.py
(Только, чтобы ясно дать понять Вы должны использовать надлежащие команды и соединяете maybeputting каналом часть этого в подготовленных сценариях удара, таким образом, можно уменьшить объем выполнения кронов)
поместите шаги 1,2,3 в помещенный шаг 4 script1.sh в script2.sh
, Затем устанавливают крон , чтобы соответствующий пользователь выполнил сценарии согласно Вашему расписанию:
minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command
01 * * * * /usr/bin/directory/script1.sh
30 2 * * * /usr/bin/directory/script2.sh
script1.sh будет выполняться в минуту 01, если каждый час каждого дня, в то время как script2.sh будет выполнен в минуту 30 из часа 0200 каждый день.