วิธีการเปลี่ยนเปลือก cron (sh เพื่อทุบตี)?


70

มันเป็นไปได้ที่จะทำให้คำสั่งใน crontab รันด้วย bash แทน sh หรือไม่? ฉันรู้ว่าคุณสามารถส่งคำสั่งเพื่อทุบตีด้วย-cแต่ที่น่ารำคาญและฉันไม่เคยใช้ SH อย่างไรก็ตาม


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

คำตอบ:


103

คุณควรจะสามารถตั้งค่าตัวแปรสภาพแวดล้อมก่อนที่งาน cron จะทำงาน:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

2
เป็นไปได้หรือไม่ที่จะทำให้อ่าน bashrc
ปุย

3
@Fluffy .bashrcคือ - ตามคำนิยาม - สำหรับเชลล์แบบโต้ตอบ ; ดังนั้นเมื่อเริ่มต้นผ่านcron, bashจะอ่านไฟล์นี้ถ้ามันเป็นเปลือกโต้ตอบ
umläute

18
ฉันก็สามารถที่จะทำให้มันอ่าน bashrc BASH_ENV="/root/.bashrc"โดยการเพิ่ม ขอบคุณ
ปุย

2
@Fluffy คุณควรตอบคำถามนี้
vol7ron

2
เกี่ยวกับ.bashrc, bash -lดูประโยชน์blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.