Score:0

Crontab ไม่ทำงานสคริปต์ python พยายามแก้ไขหลายครั้ง ใหม่ไปยังเทอร์มินัลไปง่ายกับฉัน

ธง ve

สวัสดีทุกคนและขอบคุณสำหรับการอ่านฉันจะหารือด้านล่าง

ฉันมีสคริปต์หลามง่าย ๆ ที่พิมพ์ข้อเท็จจริงแบบสุ่มจาก reddit ลงในเทอร์มินัล ฉันกำลังทดสอบน่านน้ำของเทอร์มินัลในขณะที่เรียนรู้หลาม

ฉันได้ลองเปลี่ยนสิทธิ์ในการเข้าถึง /usr/bin/ dir ไม่มีความสำเร็จ

ฉันได้สร้างสคริปต์ reddit.py ใหม่ภายใน /usr/bin dir ขณะที่ฉันอ่านที่อื่นว่า crontab ทำงานจากไดเร็กทอรีหลักเท่านั้นและหากกำหนดเส้นทางทั้งสองในไฟล์ crontab สิ่งนี้ควรแก้ปัญหาการทำงาน อีกครั้งไม่ประสบความสำเร็จ

ฉันให้สิทธิ์การอ่านเขียนและดำเนินการอย่างเต็มที่ใน / นอกเหนือจาก 'proc' & 'sys' ซึ่งถูกปฏิเสธ

มันจะทำงานถ้าฉันเขียนเส้นทางในเทอร์มินัลและพิมพ์ข้อเท็จจริงแบบสุ่มจาก TIL จาก reddit

จะไม่ทำงานผ่าน crontab ข้อมูลเพิ่มเติมใด ๆ ที่ทุกคนสามารถให้ได้จะได้รับการตอบรับอย่างดี และถ้าคุณสามารถกรุณาให้รายละเอียดที่เรียบง่ายใด ๆ เนื่องจากฉันเพิ่งเริ่มต้นด้วยสิ่งนี้และฉันกำลังเข้าใจสิ่งต่าง ๆ อย่างช้าๆ แต่แน่นอน ขอบคุณมากอีกครั้ง ฉันจะให้สำเนาของสคริปต์ด้านล่าง

ฉันใช้ Debian 10 บน Chromebook AMD 64

#! /usr/bin/env หลาม
คำขอนำเข้า
นำเข้า json 
 
subreddit = 'วันนี้เรียนรู้'
นับ = 1
กรอบเวลา = 'วัน' #ชั่วโมง วัน สัปดาห์ เดือน ปี ทั้งหมด
listing = 'random' # แย้ง, ดีที่สุด, ร้อนแรง, ใหม่, สุ่ม, เพิ่มขึ้น, ด้านบน
 
def get_reddit(subreddit,นับ):
    พยายาม:
        base_url = f'https://www.reddit.com/r/{subreddit}/{listing}.json?count={count}&t={timeframe}'
        request = request.get(base_url, headers = {'User-agent': 'yourbot'})
    ยกเว้น:
        พิมพ์ ('เกิดข้อผิดพลาด')
    ส่งคืนคำร้องขอ json()
 
top_post = get_reddit(subreddit,นับ)
 
ถ้ารายการ != 'สุ่ม':
    title = top_post['data']['children'][0]['data']['title']
    url = top_post['data']['children'][0]['data']['url']
อื่น:
    title = top_post[0]['data']['children'][0]['data']['title']
    url = top_post[0]['data']['children'][0]['data']['url']
 
 
พิมพ์(f'{title}\n{url}')

ไฟล์ Crontab:

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

ขอบคุณ ฉันพยายามแก้ไขปัญหานี้มา 12 ชั่วโมงแล้ว แต่ก็ยังไม่สำเร็จ มันช่วยให้ฉันคุ้นเคยกับสภาพแวดล้อมและคำสั่ง! ซับเงินดังนั้น =)

codlord avatar
ru flag
ควรเป็น `/dev/null` หากคุณต้องการเปลี่ยนเส้นทางเอาต์พุตไปที่นั่น แต่ทำไมไม่เปลี่ยนเส้นทางไปยังไฟล์บันทึก จากนั้นไฟล์บันทึกจะมีข้อความ/ข้อผิดพลาดจากคำสั่ง/สคริปต์ไพธอนของคุณ หากคุณไม่ได้รับข้อความ/ข้อผิดพลาดที่มีความหมาย ให้เพิ่มลงในสคริปต์ของคุณ เพื่อให้คุณเห็นว่ากำลังทำอะไรอยู่และเกิดข้อผิดพลาดที่ใด
hr flag
*"พิมพ์ข้อเท็จจริงแบบสุ่มจาก reddit ไปยังเทอร์มินัล"* cron ไม่รู้เกี่ยวกับเทอร์มินัลใดๆ ที่อาจเปิดอยู่ ดังนั้นเอาต์พุตใดๆ จะถูกส่งไปยังเจ้าของ crontab หรือไม่ก็ทิ้งไป
Score:1
ธง in

เป็นความคิดที่ไม่ดีอย่างยิ่งที่จะเปลี่ยนการอนุญาตบน / หรือ /usr/bin หรือวางไฟล์ในไดเร็กทอรีเหล่านั้น หากคุณกำลังจะติดตั้งโปรแกรมโลคัลแบบนี้ที่ระดับระบบ โปรแกรมควรเข้าไปที่ /usr/local/bin

นอกจากนี้ยังไม่จำเป็นต้องทำเช่นนี้เพื่อให้สิ่งที่คุณพยายามทำสำเร็จ ไม่จำเป็นต้องอยู่ในไดเร็กทอรีระบบเพื่อเรียกใช้จาก cron โดยเฉพาะ cron ของผู้ใช้ คุณควรวางไฟล์นี้ในโฮมไดเร็กทอรีของคุณและระบุพาธแบบเต็มตามที่คุณทำในรายการ crontab

โดยปกติแล้ว cron จะส่งข้อผิดพลาดถึงคุณเมื่อสิ่งต่าง ๆ ล้มเหลว อย่างไรก็ตาม คุณอาจไม่ได้ติดตั้งเมล และคุณกำลังปิดใช้งานการบันทึกข้อผิดพลาดด้วย >dev/null 2>&1

เป็นไปได้มากว่าหากคุณแก้ไขสิ่งเหล่านี้และตรวจพบข้อผิดพลาดที่ทำให้สคริปต์ของคุณทำงานไม่ได้ คุณจะพบว่าปัญหาที่แท้จริงคืออะไร (หากคุณไม่สามารถหาข้อผิดพลาดได้เมื่อได้รับข้อผิดพลาดแล้ว ให้เพิ่มลงในคำถามของคุณ)

Mentalist avatar
ve flag
ขอบคุณสำหรับความช่วยเหลือของคุณ นี่เป็นข้อมูลที่ดีมาก ฉันไม่ทราบอย่างเต็มที่ว่าการบันทึกข้อผิดพลาด >dev/null 2>&1 ถูกปิดใช้งาน ฉันพบว่ามันเป็นส่วนหนึ่งของการแก้ไขปัญหา crontab ซึ่งเป็นส่วนหนึ่งของ #!/usr/ การเพิ่ม bin/env หลาม
Mentalist avatar
ve flag
ขออภัยที่ฟังดูไร้สาระ บันทึกข้อผิดพลาด - ฉันจะต้องติดตั้งเมลไคลเอ็นต์/ตรวจสอบว่ามีการติดตั้งหรือไม่ เมื่อเสร็จแล้วฉันสามารถลบบรรทัดนั้นออกจากสคริปต์และตรวจสอบเมลของฉันเพื่อหาบันทึกข้อผิดพลาดจากไฟล์ crontab โดยอัตโนมัติเมื่อฉันลบโค้ดออกจากสคริปต์และมันจะส่งไฟล์บันทึกไปยังที่อยู่อีเมลของฉันเมื่อฉันเข้าใจทั้งหมด ที่ออก? ขอขอบคุณอีกครั้งสำหรับความช่วยเหลือของคุณ มันได้รับการชื่นชมอย่างมาก
Mentalist avatar
ve flag
ฉันได้ชี้แจงว่าฉันติดตั้ง Mail แล้ว มีบันทึกข้อผิดพลาดจำนวนหนึ่ง ถ้าคุณมีงานตามกำหนดการที่ทำงานทุก 2 นาที คาดว่าจะมีอีเมลจำนวนหนึ่ง ฮ่าฮ่า ขอบคุณสำหรับสิ่งนี้ ฉันจะดำเนินการจากที่นี่และกลับมา! ดูเหมือนว่าจะไม่พบ python ดังนั้นจะลองแก้ไขเล็กน้อย ขอบคุณทุกคนอีกครั้ง!
user10489 avatar
in flag
ขอให้โชคดีและมีความสุขในการล่าสัตว์!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา