Использование cron в подсистеме Linux (wsl) в Windows 10

Я всегда был большим поклонником Linux и с появлением подсистемы Linux в ядре Windows 10 я конечно же стал его активно использовать. По сути никаких отличий от официального Linux-а я не заметил, все тоже самое и работает из коробки. Нужно только зайти в магазине Microsoft Store найти приложение Ubuntu и установит его. При открытии приложения у вас откроется bash. Разумеется пока ни о какой графической оболочке и речи быть не может. А теперь к сути.

Значит есть у нас на борту WSL и запустили мы в нем много всякой всячины. nginx, postgresql, django и т.д. Периодически мне потребовалось выполнять некоторые манипуляции с базой данных. Разумеется первое что пришло на ум это встроенный демон-планировщик который входит в ядро Linux это — Cron. Так как у меня Django, то я использовал Django-crontab, по сути обертка над обычным cron для Django. Вещь кстати классная, простая и эффективная как топор.

Добавил в settings.py расписание для скрипта

CRONJOBS = [    (’15 */4 * * *’, ‘catalog.cron.import_dbf_job’)]

И далее разумеется ждал, что он будет выполняться каждый 4 часа + 15 минут. Но почему то этого не происходило. К сожалению я много времени убил на выяснение причин, но в итоге все свелось к тому, что:

  1. Нужно сначала запустить cron командой sudo service cron start
  2. Нужно включить текущего пользователя windows в группу cron
    usermod -a -G crontab (username)

На этом в принципе все. Решение было найдено тут. У себя в блоге как обычно записал шпаргалку для себя и для русскоязычных пользователей.

Добавить комментарий

Ваш адрес email не будет опубликован.