Score:0

รันคำสั่ง bash ภายในงาน cron ใน Ubuntu

ธง cn

ฉันมีเซิร์ฟเวอร์ที่ใช้ Ubuntu และฉันต้องการสร้างงาน cron ที่ทำงานทุก ๆ ชั่วโมง รายละเอียดคือฉันต้องการให้ cron นี้ดำเนินการคำสั่ง bash ในเส้นทางเฉพาะ นี่เป็นตัวอย่างคำสั่งของฉัน sudo bash/path/file ดังนั้นงาน cron ของฉันควรทำงานทุกชั่วโมง เป็นไปได้ไหมที่จะทำสิ่งนี้ในงาน cron ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

terdon avatar
cn flag
ทำไมคุณถึงต้องการ `sudo`? สคริปต์นี้ใช้ทำอะไร คุณไม่สามารถใช้ `sudo` ใน cron ได้ แต่เพื่อให้วิธีแก้ปัญหาที่ใช้งานได้ เราต้องเข้าใจว่ามันจำเป็นจริง ๆ หรือไม่
cn flag
คุณจะต้องอ่าน [`man 5 crontab`](https://manpages.ubuntu.com/manpages/focal/en/man5/crontab.5.html) เพื่อเรียนรู้เกี่ยวกับรูปแบบ และทำ `sudo crontab -e` เพื่อแก้ไข crontab ของ **root** แทนที่จะใส่ sudo ใน crontab ของคุณ
Score:1
ธง es

นั่นเป็นไปได้อย่างสมบูรณ์ เพียงเพิ่มรายการในไฟล์ crontab ด้วย crontab -e โดยใช้ผู้ใช้ที่ถูกต้อง คุณสามารถย้ายสคริปต์ของคุณได้ที่ /etc/cron.hourly. เพียงแค่นับไฟล์ bash ที่อยู่ภายใต้ /etc/cron.hourly จะวิ่งตาม ราก. หากคุณต้องการเรียกใช้สคริปต์ภายใต้ผู้ใช้เป้าหมาย ให้ใช้วิธี crontab และตรวจสอบให้แน่ใจว่าได้ระบุเส้นทางที่แน่นอนของสคริปต์ของคุณ และผู้ใช้ของคุณสามารถเรียกใช้สคริปต์ได้ เช่น

@รายชั่วโมง /my/bash/script.sh
#หรือ
0 * * * * /my/bash/script.sh
cn flag
ขอบคุณที่ตอบครับ มีข้อสงสัยครับ ฉันจะย้ายสคริปต์ของฉันไปยังโฟลเดอร์ /etc/cron.hourly ได้อย่างไร หากต้องการให้รันในฐานะรูท หรือวิธีใดที่จะทำให้สคริปต์มีประสิทธิภาพมากขึ้นสำหรับกรณีนี้ และอีกคำถามหนึ่ง คำสั่งของฉันใช้ bash ฉันต้องใส่พาธสัมบูรณ์ไปยัง bash และไปยังไฟล์ที่ฉันต้องการดำเนินการด้วยหรือไม่
Javier Galarza avatar
es flag
คุณสามารถระบุคำสั่งหรือสคริปต์ที่คุณต้องการเรียกใช้ใน cron ได้หรือไม่?
cn flag
เป็นคำสั่งเรียกใช้งานไฟล์เพื่อล้างแคช ฉันดำเนินการด้วยวิธีต่อไปนี้ภายในโฟลเดอร์ของเว็บของฉัน ซึ่งไฟล์ดังกล่าวระบุว่า "sudo bash ss-purge-opcache"
Javier Galarza avatar
es flag
เพียงสร้างไฟล์ที่ `/etc/cron.hourly` : `touch /etc/cron.hourly/update.cache` และใส่คำสั่งนั้นในไฟล์นั้น คุณไม่จำเป็นต้องใช้ `sudo` เนื่องจากสคริปต์นั้นจะทำงานในฐานะรูท นอกจากนี้ ให้สิทธิ์ที่ถูกต้อง `chmod a+x /etc/cron.hourly/update.cache` คุณอาจต้องระบุเส้นทางสัมบูรณ์ หากเป็นกรณีนี้ ให้ค้นหาเส้นทางสัมบูรณ์ของคำสั่งด้วย ` which ss-purge-opcache '

โพสต์คำตอบ

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