سؤال

كيف يمكنني إعداد crontab الخاص بي لتنفيذ البرنامج النصي X في الساعة 11:59 مساءً كل يوم دون مراسلتي عبر البريد الإلكتروني أو إنشاء أي سجلات؟

الآن يبدو crontab الخاص بي مثل هذا

@daily /path/to/script.sh
هل كانت مفيدة؟

المحلول

عندما تقوم بـ crontab -e، جرب هذا:

59 23 * * * /usr/sbin/myscript > /dev/null

هذا يعني:في 59 دقيقة و23 ساعة في كل يوم (*) في كل شهر في كل يوم من أيام الأسبوع، قم بتنفيذ myscript.

يرى رجل كرونتاب لمزيد من المعلومات والأمثلة.

نصائح أخرى

متابعة إجابة سفريست، اعتمادًا على الصدفة الخاصة بك، يجب أن يذهب 2>&1 بعد > /dev/null وإلا ستظل ترى الإخراج من stderr.

سيؤدي ما يلي إلى إسكات كل من stdout وstderr:

59 23 * * * /usr/sbin/myscript > /dev/null 2>&1

الصمت التالي هو stdout، لكن stderr سيظل يظهر (عبر stdout):

59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null

الفصل الخاص بدليل البرمجة النصية لـ Bash المتقدم حول إعادة توجيه الإدخال/الإخراج يعد مرجعًا جيدًا - ابحث عن 2>&1 لرؤية بعض الأمثلة.

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

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