Crontab не запускает скрипт python Пробовал множество исправлений Новичок в терминале, полегче со мной [закрыто]

Привет всем и спасибо за чтение Я буду обсуждать ниже.

У меня есть простой скрипт на python, который печатает случайный факт из reddit в терминале. Я пробую терминал, пока изучаю python.

Я пробовал изменить права доступа к директории /usr/bin/. Безуспешно

Я создал новый скрипт reddit.py в каталоге /usr/bin, так как я прочитал в другом месте, что crontab запускается только из своего домашнего каталога, и если оба пути указаны в файле crontab, это должно решить проблему его запуска. Снова безрезультатно.

Я дал себе полные права на чтение, запись и выполнение в /, кроме 'proc' и 'sys', которые были отклонены.

Он запустится, если я напишу путь в терминале и выведет случайный факт из TIL с reddit.

Не запускается через crontab Любая дополнительная информация, которую кто-либо может предоставить, будет очень полезна, и если вы можете, пожалуйста, предоставить любые упрощенные детали, так как я только начал с этим, и я получаю понимание вещей медленно, но верно. Еще раз большое спасибо. Ниже я приведу копию скрипта.

Я использую Debian 10 на AMD 64 chromebook.

#! /usr/bin/env python
import requests
import json 
 
subreddit = 'todayilearned'
count = 1
timeframe = 'day' #hour, day, week, month, year, all
listing = 'random' # controversial, best, hot, new, random, rising, top
 
def get_reddit(subreddit,count):
    try:
        base_url = f'https://www.reddit.com/r/{subreddit}/{listing}.json?count={count}&t={timeframe}'
        request = requests.get(base_url, headers = {'User-agent': 'yourbot'})
    except:
        print('An Error Occured')
    return request.json()
 
top_post = get_reddit(subreddit,count)
 
if listing != 'random':
    title = top_post['data']['children'][0]['data']['title']
    url = top_post['data']['children'][0]['data']['url']
else:
    title = top_post[0]['data']['children'][0]['data']['title']
    url = top_post[0]['data']['children'][0]['data']['url']
 
 
print(f'{title}\n{url}')

Файл Crontab:

*/5 * * * * /usr/bin/python /usr/bin/reddit.py >dev/null 2>&1

Спасибо, я пытался решить эту проблему в течение 12 часов и все еще не достиг успеха. Хотя это помогает мне освоиться с окружением и командами! Так что есть и плюсы =)

0
задан 20 June 2021 в 20:08

1 ответ

Крайне плохая идея изменять разрешения для / или / usr / bin или размещать файлы в этих каталогах. Если вы собираетесь установить такую ​​локальную программу на системном уровне, она должна находиться в / usr / local / bin

. Также нет необходимости делать это для выполнения того, что вы пытаетесь, это не обязательно в системном каталоге для запуска из cron, особенно из cron пользователя. Вы должны иметь возможность поместить этот файл в свой домашний каталог и просто указать полный путь к нему, как вы уже делаете в записи crontab.

Обычно cron отправляет вам сообщения об ошибках, когда что-то выходит из строя. Однако у вас может не быть установленной почты, и вы все равно отключаете ведение журнала ошибок с помощью > dev / null 2> & 1

. Скорее всего, если вы исправите эти вещи и зафиксируете ошибку, которая мешает запуску вашего скрипта, вы узнаете, в чем настоящая проблема. (Если вы не можете определить это по ошибкам, как только вы их получили, добавьте их в свой вопрос.)

1
ответ дан 28 July 2021 в 11:26

Другие вопросы по тегам:

Похожие вопросы: