เอาต์พุตมาตรฐานจากat
และcron
ภารกิจไปที่ใดเนื่องจากไม่มีหน้าจอที่จะแสดง
ไม่ปรากฏในไดเรกทอรีที่งานเริ่มจากหรือในโฮมไดเร็กตอรี่ของฉัน
ฉันจะคิดออกได้อย่างไรว่าฉันไม่รู้วิธีแก้จุดบกพร่องหรือติดตามงานพื้นหลัง?
เอาต์พุตมาตรฐานจากat
และcron
ภารกิจไปที่ใดเนื่องจากไม่มีหน้าจอที่จะแสดง
ไม่ปรากฏในไดเรกทอรีที่งานเริ่มจากหรือในโฮมไดเร็กตอรี่ของฉัน
ฉันจะคิดออกได้อย่างไรว่าฉันไม่รู้วิธีแก้จุดบกพร่องหรือติดตามงานพื้นหลัง?
คำตอบ:
จากหน้า cron man:
เมื่อดำเนินการคำสั่งเอาต์พุตใด ๆ จะถูกส่งไปยังเจ้าของ crontab (หรือผู้ใช้ที่มีชื่อในตัวแปรสภาพแวดล้อม MAILTO ใน crontab หากมีอยู่) สำเนาลูกของ cron ที่รันกระบวนการเหล่านี้มีชื่อบังคับเป็นตัวพิมพ์ใหญ่ดังที่เห็นในเอาต์พุต syslog และ ps
ดังนั้นคุณควรตรวจสอบจดหมาย / รูทของคุณหรือ syslog (เช่น. / var / log / syslog)
สำหรับกระบวนการที่ใช้เวลานานบางครั้งมีประโยชน์ที่จะทราบว่าผลลัพธ์คืออะไรก่อนที่คุณจะได้รับอีเมลฉันจะใช้สิ่งนี้แทน:
ps
เพื่อค้นหา ID กระบวนการของโปรแกรมที่กำลังทำงานของคุณ ( PID
ด้านล่าง);ใช้lsof
เพื่อค้นหาไฟล์ที่เอาต์พุตกำลังถูกเขียนไปที่:
lsof -p PID
ในผลลัพธ์ค้นหา1u
และ2u
บรรทัดภายใต้FD
ส่วนหัวของคอลัมน์
บรรทัดเหล่านี้จะบอกคุณว่าไฟล์ชั่วคราวใดที่เอาต์พุตของกระบวนการกำลังจะเข้าสู่ก่อนที่จะถูกส่งทางไปรษณีย์ โดยปกติสำหรับไฟล์จะอยู่ภายใต้at
/var/spool/cron/atjobs/
สุดท้ายแสดงไฟล์นั้นและคุณจะพบผลลัพธ์ของกระบวนการ (ปัจจุบัน)
1u
และเป็นประเภท2u
UNIX
ฉันเดาว่านี่คือซ็อกเก็ตยูนิกซ์ ฉันจะดูไฟล์ได้อย่างไร