เรียกใช้ในฐานะผู้ใช้เฉพาะ ฉันจะต้องเพิ่มตำแหน่งสคริปต์ใน PATH หรือไม่
โดยปกติแล้ว คุณไม่จำเป็นต้องแก้ไขตัวแปรสภาพแวดล้อม PATH เมื่อคุณใช้เส้นทางแบบสัมบูรณ์ เช่น คุณกำลังดำเนินการกับ /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt
ในฐานะผู้ดูแลระบบ คุณมีหลายตัวเลือกในการสร้างชุดงานตามกำหนดเวลาที่รันภายใต้ ID ผู้ใช้อื่น:
ตามที่อธิบายไว้ใน คำตอบนี้: ตั้งค่า crontab ส่วนตัวสำหรับผู้ใช้นั้น. งานใน crontab ส่วนตัวจะทำงานภายใต้ ID ผู้ใช้ของเจ้าของเสมอ
โปรดทราบว่าเมื่อคุณในฐานะผู้ดูแลระบบตั้งค่า crontab ส่วนบุคคลสำหรับผู้ใช้รายอื่น ผู้ใช้รายนั้นจะสามารถแก้ไขและลบข้อมูลจำเพาะของงาน cron นั้นได้ ซึ่งจะยกเลิกการทำงานของคุณ
หรือคุณสามารถ กำหนดเวลางานระบบจาก crontab ระบบ. crontab ระบบ (โดยทั่วไปคือ /etc/crontab
และ/หรือดร็อปอินไฟล์ใน /etc/cron.d/
) เป็นของ root และไม่สามารถแก้ไขได้โดยผู้ใช้ที่ไม่มีสิทธิพิเศษ ข้อมูลจำเพาะของงานใน crontab ระบบรองรับฟิลด์พิเศษที่ไม่มีอยู่ในไฟล์ crontab ส่วนบุคคล: ฟิลด์ #6 ต้องการชื่อผู้ใช้ เช่น xfeautomation
ของ User ID ที่จะใช้ในการทำงาน
ไวยากรณ์ที่คุณโพสต์นั้นถูกต้องสำหรับรายการ /etc/crontab
หรือไฟล์ดรอปอินเช่น /etc/cron.d/wf_api_linux
0 * * * * xfeautomation /opt/scripts/wf_venv/bin/python /opt/scripts/wf_api_linux.py 2>&l /opt/scripts/log.txt
เนื่องจากคุณกำลังบันทึกเอาต์พุตและข้อผิดพลาดทั้งหมดจึงไม่ใช่เรื่องที่ต้องกังวล แต่โดยปกติแล้ว cron จะส่งอีเมลเอาต์พุตมาตรฐานและข้อผิดพลาดไปยังรูทเมื่อคุณตั้งค่า crontab ระบบและส่งถึงผู้ใช้โดยตรงเมื่อใช้ crontab ส่วนตัว
เท่าที่ฉันทราบอย่างมีประสิทธิภาพทั้งสองวิธีส่งผลให้เกิดเงื่อนไขเดียวกันสำหรับงาน และนอกเหนือจากข้อกังวลเกี่ยวกับการเป็นเจ้าของข้อมูลจำเพาะของงานและอีเมลแล้ว ทั้งสองวิธีนั้นเทียบเท่ากัน