เชลล์แบบโต้ตอบที่มีสภาพแวดล้อมเหมือนกับ cron


10

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

ตอนนี้ฉันคิดว่าตัวเอง/bin/openvt -c8 -- /bin/bash --noprofile -lแต่ต้องใช้สิทธิ์รูทกำหนดตัวแปรมากเกินไปและsu myusernameตั้งค่าสภาพแวดล้อมพิเศษได้ง่าย

มีใครรู้วิธีที่จะเริ่มเชลล์ bash แบบอินเตอร์แอคทีฟที่มีสภาพแวดล้อมเหมือนกันกับ cron และไม่ต้องการสิทธิ์รูทบน Kubuntu?

โบนัสเมื่อใช้งานในเซสชัน ssh ใน GUI และในระบบปฏิบัติการต่อไปนี้อย่างน้อยหนึ่งอย่างเช่น HP-UX, Solaris และ AIX

คำตอบ:


14

เรียกใช้crontab -eและเพิ่มรายการด้วย

* * * * * export -p > ~/cron-env

(ถ้าบน Solaris หรือระบบที่ไม่ได้ใช้ POSIX เชลล์เพื่อแปลบรรทัดคำสั่งนั้นให้ใช้/usr/xpg4/bin/sh -c 'export -p > ~/cron-env'หรือเส้นทางใดก็ตามที่เป็นมาตรฐานshในระบบนั้น)

รอหนึ่งนาทีแล้วลบบรรทัดนั้น

ตอนนี้คุณควรมีcron-envไฟล์ในโฮมไดเร็กตอรี่ของคุณ.

จากนั้นคุณสามารถเรียกใช้:

cd && env -i sh -c '. ./cron-env; exec sh'

ในการเริ่มเชลล์ด้วยสภาพแวดล้อมเดียวกันกับงาน cron ของคุณ


ที่น่าสนใจจะตรวจสอบเมื่อฉันกลับมาประมาณหนึ่งชั่วโมง
jippie

ยอดเยี่ยมทำงานเหมือนในฝัน!
jippie

คำตอบที่ยอดเยี่ยมที่สุด ฉันจะโหวตมากกว่าหนึ่งครั้งถ้าทำได้
Sukima

2

Cron ไม่ใช่เชลล์แบบโต้ตอบดังนั้นจึงเป็นปัญหาแรกของคุณ มันเป็นจุดอ่อนที่สุด

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

ตอนนี้คุณค่อนข้างใกล้เคียงกับสภาพแวดล้อมที่ cron เห็นแล้ว


ไม่เคยสังเกตเห็นส่วนหัวของจดหมายที่มีสภาพแวดล้อมบางอย่างโดยค่าเริ่มต้นธันเดอร์เบิร์ดซ่อนสิ่งเหล่านี้จากผู้ใช้ ส่วนหัวโชคไม่ดีแสดงถึงสภาพแวดล้อมที่สมบูรณ์
jippie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.