ไม่เคยสร้าง crontab ของ Mac


12

ฉันกำลังพยายามติดตั้ง cron บน mac ของฉัน แต่ดูเหมือนว่ามันจะไม่เสร็จสิ้นการสร้าง crontab สำหรับผู้ใช้ของฉัน ฉันเปิดเทอร์มินัลแล้วป้อน:

$ crontab -e 

ซึ่งส่งคืนสิ่งนี้:

crontab: no crontab for jjmay - using an empty one




















~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
"/tmp/crontab.rBdeP6yv1U" 0L, 0C

จากนั้นมันจะรอจนกว่าฉันจะปิดหน้าต่างฉันปล่อยให้มันนานถึง 20 นาที ฉันเปิดหน้าต่างเทอร์มินัลอื่นเพื่อตรวจสอบการสร้าง crontab และไม่ได้อะไรเลย

$ crontab -l 
crontab: no crontab for jjmay

ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุที่ฉันไม่สามารถสร้างสิ่งนี้หรือหากฉันสามารถสร้าง crontab ด้วยตนเองเพื่อให้ฉันสามารถแก้ไขได้


มันไม่นานมานี้เพราะฉันยุ่งกับไฟล์ crontab ใน OS X แต่ฉันเดาว่า: "/tmp/crontab.rBdeP6yv1U" 0L, 0C แสดงว่าคุณไม่ได้อยู่ในไดเรกทอรีที่ถูกต้องหรือไม่มีสิทธิ์เขียน ไปยังไดเรกทอรีนั้น ไดเรกทอรีที่คุณอยู่เมื่อพิมพ์ "crontab -e" คืออะไร? JDB
JDB

@JDB ขอบคุณ ฉันไม่ทราบว่าฉันจะต้องอยู่ใน dir ที่เฉพาะเจาะจงฉันอยู่ใน dir เริ่มต้นของฉันเมื่อฉันเปิดเทอร์มินัลเพียงไดเรกทอรีผู้ใช้เริ่มต้นของฉัน / Users / <my_username> /
Jage

คำตอบ:


22

นี่ไม่เกี่ยวกับการแก้ไข แต่เกี่ยวกับการอนุญาตของผู้ใช้ แรกกลายเป็นราก:

sudo su -

จากนั้นแก้ไข crontab สำหรับผู้ใช้ที่เหมาะสม:

crontab -u username -e

หลังจากบันทึกไฟล์คุณสามารถตรวจสอบได้ว่าไฟล์ถูกบันทึกอย่างถูกต้องโดยเรียกใช้สิ่งนี้:

crontab -u username -l

1
วิธีนี้ใช้ได้ผลสำหรับฉัน ตัวแปรที่ไม่น่าแปลกใจสำหรับฉันคือ:sudo crontab -u username -e
Andrew Miner

7

ฉันพบปัญหานี้แล้ว ในขณะที่พยายามแก้ไขปัญหาฉันถูกเรียกที่นี่จาก Google อย่างไรก็ตามนี่คือวิธีที่ฉันจะแก้ไขมัน

ใช้

crontab -e

ซึ่งคุณทำถูกต้อง

กด 'i' เพื่อแทรก cronjob ของคุณ ตัวอย่างเช่น,

1 * * * * /Users/Wong/Documents/abc.command

~

โปรดจำไว้ว่าให้กดส่งคืนหลังจากบรรทัด หากคุณไม่กดปุ่มย้อนกลับจะเป็นเช่นนี้

1 * * * * /Users/Wong/Documents/abc.command

กด ESC แล้วพิมพ์: wq เพื่อบันทึกและออกจากไฟล์ ควรบอกว่า "crontab: ติดตั้ง crontab ใหม่"

ฉันรู้ว่าถ้าคุณไม่กดส่งคืนหลังจากบรรทัดของคุณมันจะไม่บันทึกสิ่งทั้งหมด

หวังว่ามันจะช่วย


ขอบคุณ ฉันยังคงออกไป:q!ในขณะที่โซลูชันของคุณ:wqสร้างความแตกต่างอย่างสมบูรณ์
KeitelDOG

1
ยินดีต้อนรับ :q!อนุญาตให้คุณเลิกโดยไม่บันทึกในขณะที่:wqเขียนไปยังไฟล์ก่อนออกจากโปรแกรม
Richard Wong

ฉันทันกับคำสั่ง VIM ดังนั้นตอนนี้ฉันรู้หลายสิ่งหลายอย่างที่ฉันควรรู้!
KeitelDOG

1

การปิดหน้าต่างเทอร์มินัลจะไม่ทำให้ crontab บันทึก

เนื่องจากมันใช้ vim เพื่อสร้างไฟล์ให้ค้นหาวิธีใช้ VIM และไปจากที่นั่น

launchd เป็นวิธีที่ต้องการ (Apple) ใน 10.5 และ 10.6 แต่คุณไม่ได้ถามถึงวิธีการสร้าง crontab


1

หน้าต่างที่แสดงเป็นเครื่องมือแก้ไข vi บนระบบ unix ดั้งเดิม vi เป็นตัวแก้ไขดีฟอลต์ ดูเหมือนว่า Mac OS X ได้รักษาประเพณีนั้นไว้

ตั้งค่าEDITORและVISUALตัวแปรสภาพแวดล้อมเป็นชื่อ (พา ธ เต็มหากไม่อยู่ใน$PATH) ของเครื่องมือแก้ไขรายการโปรดของคุณ เช่น

export EDITOR=emacs VISUAL=emacs
crontab -e

การตั้งค่านี้ควรเป็นของคุณ~/.profile(สมมติว่า Mac OS X อ่านไฟล์นั้นเมื่อคุณเข้าสู่ระบบหากมีวิธี OSX ในการกำหนดตัวแปรสภาพแวดล้อมสำหรับเซสชันทั้งหมดคุณสามารถกำหนดได้ที่นั่น)


0

นี่เป็นโซลูชันของฉัน: แก้ไขตัวแก้ไขของคุณก่อน export EDITOR=vim จากนั้นแก้ไข. vimrc autocmd filetype crontab setlocal nobackup nowritebackup มันจะทำงาน


สิ่งนี้ทำอะไร ฉันคนหนึ่งจะต้องระมัดระวังอย่างมากเกี่ยวกับการเปลี่ยนไฟล์การกำหนดค่าในคำพูดพาดพิงถึงคนแปลกหน้าบางคนที่ไม่ระบุชื่อบน interent ที่ไม่ได้อธิบายการเปลี่ยนแปลงที่ควรทำ
David Richerby

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