سؤال

أحاول التعرف على وظائف كرون، وأعتقد أنني أحصل على الفكرة الأساسية (الجدولة، بناء الجملة، إلخ)، ولكن، لا يبدو لي أن أحصل عليه مباشرة على جهاز Mac الخاص بي مع محطة - حيث أجد بالضبط crontab؟ كيف يمكنني الرجوع إلى المسارات إلى البرامج النصية؟

ما أحاول القيام به هو ضرب برنامج نصي PHP على جهاز بعيد (http: // ...) - هل هذا ممكن على الإطلاق؟

هل كانت مفيدة؟

المحلول

للبدء مع LaunchD (بدلا من Cron)، ستحتاج إلى أولا إنشاء فارغة .plist ملف، على سبيل المثال local.mytask.plist ووضعها في مكان ما. ~/Library/LaunchAgents ربما مكان جيد. افتح ذلك في محرر النصوص ونسخه في التعليمات البرمجية أدناه

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>local.mytask</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/wget</string>
<string>http://someserver/somepage.php</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>RunAtLoad</key>
<true />
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>

ثم "تنشيط" الملف من سطر الأوامر:

sudo launchctl load /Users/my_username/Library/LaunchAgents/local.mytask.plist

لجعلها تحميل تلقائيا، قم بإنشاء ~/.launchd.conf ملف مع نفس السطر (ناقص sudo launch)

load /Users/my_username/Library/LaunchAgents/local.mytask.plist

تم نسخ الإرشادات المذكورة أعلاه من www.davidlanier.com. وإعادة إرسالها هنا للرجوع اليها.

نصائح أخرى

اكتب crontab -e لتعديل جدول Cron الخاص بك و crontab -l لسرد المحتويات الحالية .. النوع man 1 crontab لمزيد من المعلومات حول هذا الأمر و man 5 crontab لمزيد من المعلومات حول تنسيق ملف جدول Cron.

على سبيل المثال، لتنزيل صفحة Stackoverflow كل يوم في الساعة 10: 00A، تشغيل crontab -e, ، أدخل هذا السطر، ثم احفظ / استقال. سيتم كتابة الإخراج إلى ملف في الدليل الرئيسي الخاص بك.

0 10 * * * /usr/bin/curl -s http://stackoverflow.com > ~/stackoverflow.html

على فرصة قبالة أن شخصا آخر يقاتل مع كرون على نمر الثلج يتعثر عبر هذا، سأحرج هذا الموضوع القديم.

نعم، من المفترض أن تحل إطلاق Launchd استبدال كرون، ولكن في الواقع، لا يمكن القيام بأشياء معينة من الأشياء التي يمكن cron.

لم يتم دمج كرون جيدا. إذا أرسل رسالة، فهي تنتهي في / var / mail / user_name والتي بالطبع بريد Apple لا يعرف شيئا عنه.

Crontab -e يلقي قائلا "يجب تحرير ملف TEMP في مكانه". على ما يبدو VIM ليس vi متوافق. يمكنك بعد ذلك القيام به Crontab "</tmp/crontab.whathating" (إلقاء نظرة على / TMP وشاهد ما الاسم المستخدم بالفعل) وسوف ينتهي الأمر في المكان المناسب، ويفترض أنك لم تصنع خطأ مطبعي، وسيعمل.

نعم، استغرق الأمر بعض الوقت لفرز هذا كل شيء :(

LaunchD قوية، لكنك حقا لا تريد أن تكتب تخفيف نفسك. احصل على لينغون. وبعد إنه GUI مفتوح المصدر ومصمم بشكل جيد حقا لإنشاء وإدارة مهام إطلاق النظام الخاصة بك.

تم استبدال كرون ب إطلاق منذ 10.4. ربما يجب عليك كتابة مهامك باستخدام هذا إلا إذا كنت تخطط لافتانها لأنظمة Linux / Unix في مرحلة ما.

إذا قررت أن تذهب مع كرون على أي حال، فحاول الكتابة crontab -e أو sudo crontab -e. وبعد ستمنحك هذه ملفات Crontab مختلفة، السابق للمستخدم الذي تعمل حاليا كما هو الأخير للمستخدم الجذر.

"ضرب" عنوان URL يمكن أن يتحقق الكثير من الطرق. اعتمادا على البرنامج النصي المحلي الذي تستخدمه "ضرب"، يمكنك استخدام بعض الأساليب / الفئات المدمجة في اللغة. على سبيل المثال، سوف يستخدم البرنامج النصي الروبي صافي / http. ولكن يمكنك تجربة حليقة أيضا إذا كنت تكتب سيناريو باش. يفعل man curl لمعرفة المزيد، ولكن الأمر الأساسي هو فقط curl http://google.com.

لم تعد تريد أن تستخدم كرون. كما ذكر آخرون بالفعل، تم استبداله بطلق تطلق ويقوم بوضوح أن يكون مستقبل ماك OS X.

تقوم مجلة MACTECH مؤخرا بقيام سلسلة من المقالات عن إطلاقها وسأوصي بشدة بقراءةها. وأنا أعلم أنني تعلمت بالتأكيد الكثير.

سبتمبر 2009 (المجلد 25، العدد 9) 25.09 Macenterprise: LaunchD للغداء

أكتوبر 2009، (المجلد 25، العدد 10) ليوبارد سنو، إطلاق، وغداء المزيد من وصفات Launchd، وإلقاء نظرة على التغييرات في سنو ليوبارد

كانت هناك مقالات أخرى في mactech وأود أن أقترح البحث في موقعها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top