ฉันจะกำหนดค่าคอมพิวเตอร์ให้เรียกใช้ AppleScript ในเวลาที่กำหนดได้อย่างไร Caveat: โดยไม่ต้องใช้ iCal


11

ตั้งแต่อัพเกรดเป็น Lion ฉันได้เห็นประสิทธิภาพการทำงานลดลงเมื่อใช้ iCal เป็นผลให้ฉันพยายามทางเลือกเช่น BusyCal แอพพลิเคชั่นนั้นยอดเยี่ยม แต่ฉันไม่สามารถตั้งเตือนให้เรียกใช้สคริปต์ได้ใน iCal

ดังนั้นฉันต้องการเป็นอิสระจาก iCal และให้ AppleScript ทำงานทุกวันโดยไม่ต้องเรียกใช้ iCal ต่อไป ความคิดใด ๆ ของวิธีการทำเช่นนี้?

คำตอบ:


13

คุณสามารถเรียกใช้ cronjob โดยใช้crontab
ดังนั้นโดยพื้นฐานในการรัน cronjob คุณจะต้องพิมพ์nano ~/crontabใน Terminal สิ่งนี้จะสร้างไฟล์ใหม่ชื่อ "crontab" ในโฟลเดอร์บ้านของคุณและเปิดโปรแกรมแก้ไขข้อความอย่างง่ายใน Terminal ประเภท:

* * * * * osascript ~/Desktop/theScriptToBeExecuted.applescript

สิ่งนี้จะเรียกใช้ AppleScript ที่ชื่อว่า "theScriptToBeExecuted.applescript" ที่อยู่บนเดสก์ท็อปของคุณทุกนาที ห้า "*" ก่อนosascriptคำสั่งระบุเวลา นี่คือตารางที่จะแสดงให้คุณเห็นว่าแต่ละฟิลด์ย่อมาจาก:

* * * * * * คำสั่งที่จะดำเนินการ
- - - - -
| | | | |
| | | | + ----- วันของสัปดาห์ (0 - 6) (วันอาทิตย์ = 0)
| | | + ------- เดือน (1 - 12)
| | + --------- วันที่เดือน (1 - 31)
| + ----------- ชั่วโมง (0 - 23)
+ ------------- นาที (0 - 59)

ดังนั้นเมื่อต้องการเรียกใช้คำสั่งเดียวกันในเวลาหนึ่งนาทีที่ผ่านมาเที่ยงคืน (00:01) ของทุกวันของเดือนทุกวันของสัปดาห์ให้พิมพ์คำนี้ลงในไฟล์:

1 0 * * * osascript ~/Desktop/theScriptToBeExecuted.applescript

หากคุณต้องการข้อมูลเพิ่มเติมลองดูบทความนี้ใน cron

หากต้องการบันทึกไฟล์ที่คุณกำลังทำงานให้พิมพ์Control+ X(ออก) จากนั้นY(บอก Terminal ว่าคุณต้องการบันทึกไฟล์) จากนั้นให้Enterพิมพ์ที่พรอมต์คำสั่งcron ~/crontabนี้จะบอก cron ว่าควรดูไฟล์ crontab หากไฟล์ของคุณชื่อ "crontab" ในโฟลเดอร์บ้านของคุณ

อีกทางเลือกหนึ่งคือCronnixมันเป็น GUI สำหรับ crontab

Script Timer คล้ายกัน แต่รัน AppleScript ที่ระบุตามเวลาที่กำหนด มันใช้งานง่ายกว่าเล็กน้อย แต่มีราคา 12 เหรียญ ฉันอยากจะแนะนำให้ไปกับ Cronnix (ฟรี) หรือ crontab (ยังฟรี!)


ฉันจะใช้ยูทิลิตีนั้นเพื่อทำสิ่งที่ฉันพยายามทำอย่างไร
finiteloop

1
คุณต้องการเพิ่มเงื่อนไข: โดยไม่ต้องใช้เทอร์มินัลหรือไม่?
GEdgar

ไม่ฉันใช้งานเทอร์มินัลได้ดี ฉันต้องการเพิ่มเงื่อนไข: โดยไม่ต้องใช้เวลามากมายในการเรียนรู้อรรถประโยชน์บรรทัดคำสั่ง
finiteloop

@segfault ขออภัยฉันพิมพ์ขึ้นและฉันโพสต์คำตอบก่อนที่ฉันจะเสร็จ
daviesgeek

@segfault NP! ดีใจที่ได้ช่วยเหลือ!
daviesgeek

2

ในรุ่นล่าสุดของ OS X เป็นที่ต้องการlaunchd cronนี่คือข้อความที่ตัดตอนมาจากman crontabภายใต้ Mavericks:

หมายเหตุดาร์วิน: ถึงแม้ว่า cron (8) และ crontab (5) ได้รับการสนับสนุนอย่างเป็นทางการภายใต้ดาร์วิน แต่ฟังก์ชั่นของพวกเขาได้รับการรวมเข้าไปใน launchd (8) ซึ่งให้วิธีการที่ยืดหยุ่นมากขึ้นในการดำเนินการคำสั่งอัตโนมัติ

คุณสามารถควบคุมlaunchdการใช้ในตัวlaunchctlแต่หลายคน (รวมทั้งผม) ใช้ GUI ที่เรียกว่าLingon

อัปเดต: ตอนนี้ฉันใช้LaunchControlแทน Lingon มีประสิทธิภาพมากขึ้นแม้ว่าส่วนต่อประสานที่ซับซ้อนยิ่งขึ้น

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