- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Написал себе простенький парсинг сайта, на 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 . Я у себя ее просто не использую, так как не вижу смысла в этой лишней прослойке.
Скорее всего ни какой разницы не будет, ну доля секунды на лишнюю отработку дополнительного скрипта, что весьма не существенно.