- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Написал себе простенький парсинг сайта, на Python. Но теперь надо запускать его автоматически, например раз в сутки. Естественный вариант для сервера на Debian - Использовать crontab.
Но я в этом полный нуб, поэтому прошу помощи.
Мне нужно запустить виртуальное окружение и в нем запустить мое приложение.
Руками это делается так
Как все это запихнуть в крон, только подробно, для чайников? Спасибо)
Как то так:
1. Написать bash скрипт
2. Дать права на исполнение
3. Добавить в крон
Подробнее http://stackoverflow.com/questions/7538628/virtualenvwrapper-functions-unavailable-in-shell-scripts
Sly32,
сервак на линуксе? в консоли пишем:
crontab -e
открывается текстовый редактор, в котором будут строчки с первым символом "#" - это комментарии.
Последний коммент будет выглядеть так:
#m h dom mon dow command
Это - подсказка для вас. После этой строки, на новой, и идёт команда, которая будет выполняться по крону.
Значения таковы:
1. Минута
2. Час
3. День месяца
4. Месяц
5. День недели
6. Команда
Ну теперь очень несложно написать команду. К примеру, чтобы файл запускался на исполнение раз в сутки в 10 вечера, надо написать:
0 22 * * * /root/file
Затем обязательно перейти на другую строчку и сохранить файл. Если перехода на строчку не будет осуществлено, команда крона не запишется.
Да, в этой команде звездочки обозначают любые значения. Т.е. читаем: "запустить файл /root/file в 0 минут 22 часов любого дня месяца (каждого, любого месяца (каждого) и любого дня недели (каждого). Иначе говоря, команда будет каждый день запускаться в 10 вечера.
Время, кстати, определяется по тому, что выдаёт date в консоли. Т.е. посмотрите, какое стоит время на сервере, и уже от этого отталкивайтесь, какое время указать в команде.
Да, файл, который записан в "Команда" в кроне должен быть исполняемым. Для этого делаем:
chmod 0777 /root/file
mark2011, webjey, Спасибо, но эту теорию я уже изучил) мне бы конкретный пример)) что набирать в командной строке, в скрипте...
И как проверить правильность выполнения? Где то наталкивался что есть типа --verify cron
Сейчас добавил просто в кроне следующее
А от куда все это запускаете? Если на хостинге, то там должен быть удобный крон, где не нужно знать команды. Проставляете нужное, указываете время, путь к файлу и все заработает.
dmitrii_trof, Для начала тренируюсь на локали, на хостинге у меня никаких панелей нет, поэтому все только через консоль.
---------- Добавлено 16.08.2016 в 17:39 ----------
Глаза боятся а руки делают)))
Стоило совсем немного вникнуть)
Пошел по пути написания баш-скрипта и добавления его в крон
Положил скрипт в папку с проектом, чтоб потом не искать
и в crontab посредством crontab -e
Всем огромное спасибо, что наставили на путь истинный)))
Если что-то неверно - прошу подправить.
deactivate кстати не обязательно, по умолчанию все закроется.
Скажем с учетом что:
/home/project - директория проекта
env - директория virtualenv окружения.
Тогда запись в кроне :
20 05 * * * cd /home/project && source env/bin/activate && python manage.py parse >> cron_parse.log
Тогда запись в кроне :
20 05 * * * cd /home/project && source env/bin/activate && python manage.py parse >> cron_parse.log
Спасибо, как вариант можно и так. Вопрос - в этом случае лог куда будет писаться? В эту же папку?
да, именно туда, куда перешли в самом начале. Но и так же можно указать любую другую, только путь задать полный.
Stek, Понятно, спасибо. Еще вопрос - что выгоднее - запускать окружение через workon или через source ... activate?
запускать окружение через workon или через source ... activate?
Вообще без понятия. Как понимаю workon - это от утилиты virtualenvwrapper . Я у себя ее просто не использую, так как не вижу смысла в этой лишней прослойке.
Скорее всего ни какой разницы не будет, ну доля секунды на лишнюю отработку дополнительного скрипта, что весьма не существенно.