يعد استخدام CRON لطيفًا إذا كان لديك خادم أو لا يقوم أبدًا بإيقاف تشغيل جهاز الكمبيوتر الخاص بك ، ولكن ماذا لو كان الكمبيوتر المحمول نائمًا خلال الدقيقة الدقيقة التي قمت بتعيينها لتشغيل البرنامج النصي الخاص بك؟ ماذا لو كان عليك إعادة التشغيل؟ ماذا لو كان جهاز الكمبيوتر الخاص بك يعمل بالفعل ، لكنك تفضل الانتظار حتى يتم إغلاق الغطاء قبل تشغيل عملية نسخ احتياطي أو نص مكثف آخر؟
مع Lazycron ، "سيتجول جهاز الكمبيوتر الخاص بك في النهاية." يتبع Lazycron مقاربة أكثر فاعلية في الحياة. بالتأكيد ، سوف ينجز المهمة ، ولكن لا يوجد اندفاع. أنت لا تحدد وقتًا للتشغيل ، يمكنك تعيين نطاق. والأفضل من ذلك ، كلما تشغيل البرامج النصية وتواجه خطأ ، ستظهر LC رسالة لإعلامك بشيء خطأ بدلاً من مجرد الفشل بصمت.
يمكنك تحرير ملف tavom.txt الخاص بك مع برامج لتشغيلها:
"الوقت" هو النافذة عندما يُسمح للنص بالركض. يمكنك فصل نوافذ زمنية متعددة بفواصل. على سبيل المثال: 1-3am, 2pm-4pm, 11:30-11:34 -العب مع هذه الأرقام ؛ النظام مرن للغاية. عندما تقوم بتشغيل البرنامج النصي الخاص بي ، فسوف يظهر لك نافذة الوقت التالي المتاحة لكل برنامج حتى تتمكن من تأكيد ما تتوقعه.
على سبيل المثال ، لنفترض أن لديك برنامج نصي احتياطي تريد تشغيله فقط عندما يكون الكمبيوتر متصلاً ، ولكن ليس قيد الاستخدام. في schedule.txt أدناه قمت بتعيين النطاق الزمني إلى الساعة 8:30 مساءً و 3 صباحًا. يتم تعيين التردد على * مما يعني أنه سيتم تشغيله مرة واحدة فقط خلال تلك الفترة الزمنية. تم تعيين التاريخ على sat-sun مما يعني أنه سيتم تشغيله فقط أيام السبت والأحد. يقول حقل المتطلبات أن الكمبيوتر يجب أن يكون خاملاً لمدة 5 دقائق على الأقل ، وتوصيله وعبر الإنترنت. وإلا فإن البرنامج النصي سينتظر حتى يتم استيفاء هذه الشروط.
يمكنك أيضًا تعيين متطلبات مختلفة ، مثل: يجب أن يكون الكمبيوتر خاملاً لفترة معينة من الوقت ، مشغول ، موصول ، عبر الإنترنت ، يجب إغلاق الغطاء وأكثر من ذلك. انظر الخيارات الكاملة أدناه في قسم [المتطلبات] (# المتطلبات).
#Time Frequency Date Requirements Script Path
8:30pm-3am * sat-sun idle 5m, plugged, online daily_backup_script_path_goes_here.sh
* 1h * busy 10, idle 5 my_hourly_backup_script.py
2pm-8pm 1h elapsed * online a_daily_script.py
-5pm * m-f random 8h A_surprise_everyday.py
4-6pm * 2nd Thursday busy 5m mpg123 'Libera - Going Home.mp3'
* * March 14 * pi_day.py
* * 1st-2nd * zenity --info --text="Monthly todo"
* * * start 1 run_at_startup.sh
نافذة عندما يُسمح للنص بالركض.
- `1-3am, 2pm - 4pm` (You can have multiple windows separated with commas.)
- `-5pm` will run until 5pm everyday
- A `*` will run 24 hours a day.
Play around with these numbers, the system is very flexible. When you run my script it will show you the next time window available for each program.
كم مرة يعمل البرنامج. M = دقائق ، H = ساعات وهلم جرا. يجب أن يسمح البرنامج النصي الخاص بي بمعظم مدخلات اللغة الطبيعية هنا.
- 1h will run every hour
- 1h elapsed will only count time when the computer is actively in use by user.
- A `0` will run as often as possible.
- A `*` will only run once a day.
عادةً ما يتم تعيينها كمجموعة لتقييدها لتشغيلها في أيام معينة من الأسبوع: أمثلة: MF ، كل يوم خميس
- `m-f` will run monday through friday
- `2nd Thursday` will run every 2nd thursday of the month
- `1-2nd` will run on the first two days of the month
- A `*` will run on any day of the year.
قائمة مفصولة فاصلة من المتطلبات الإضافية اللازمة لتشغيل البرنامج النصي. كما هو الحال مع الوقت والتردد والتاريخ ، يُسمح بمعظم مدخلات اللغة الطبيعية. المتوفرة على النحو التالي:
| متطلبات الوقت | |
idle | الوقت كان الكمبيوتر في وضع الخمول ل. |
busy | الوقت الذي كان الكمبيوتر مشغولا باستمرار |
elapsed | يجب استخدام إجمالي وقت الكمبيوتر ل. |
today | إجمالي الوقت اليوم يجب استخدام الكمبيوتر ل. |
| متطلبات حالة الكمبيوتر | |
online | هل لدينا إمكانية الوصول إلى الإنترنت؟ |
closed/open | يجب أن يكون الغطاء مغلقًا. |
(un)plugged | يجب إرفاق سلك الطاقة. |
lowbatt | تشغيل إذا انخفضت النسبة المئوية للبطارية عن نسبة مئوية معينة. |
minbatt | تشغيل إذا كانت نسبة البطارية أعلى من نسبة معينة. |
disk | الحد الأقصى لاستخدام القرص الحالي لبدء العملية ، معبراً عنه في كيلو بايت/ثانية |
cpu | الحد الأقصى لاستخدام وحدة المعالجة المركزية الحالية لبدء العملية ، يتم التعبير عنها كنسبة مئوية من طاقة وحدة المعالجة المركزية مجتمعة. |
network | الحد الأقصى لاستخدام الشبكة الحالي لبدء العملية ، معبراً عنه كـ KB/s |
ssid | تحقق لمعرفة ما إذا كان اسم شبكة WiFi يتطابق قبل التشغيل. |
| متى وكم مرة | |
start | قم فقط بتشغيل هذا عدة مرات عند بدء التشغيل. 0 = لانهائي |
skip | تخطي تشغيل هذه العملية X مرات عند بدء التشغيل. |
max | الحد الأقصى لعدد المرات لتشغيل البرنامج النصي. |
reps | تشغيل فقط عدة مرات في اليوم أو لكل نافذة من الوقت. |
delay | التأخير قبل بدء البرنامج النصي |
suspend | قم بتشغيل البرنامج النصي عند التعليق (إذا تم توجيهه بواسطة البرنامج النصي باستخدام خيار - |
wake | قم بتشغيل البرنامج النصي على Wake بعد التعليق |
random | سيتم تشغيل البرنامج النصي بشكل عشوائي مثال: العشوائي 8H سوف (في المتوسط) تشغيل كل 8 ساعات. في بعض الأيام قد يتم تشغيل 5+ مرات ، وأيام أخرى على الإطلاق. هذه هي الطريقة التي تعمل بها العشوائية. |
| حلقات | |
loop | تشغيل البرنامج النصي هذا عدة مرات عندما ينتهي البرنامج النصي. حلقة 0 = حلقة إلى الأبد. لا تحسب نحو ممثلين. |
retry | أعد محاولة ذلك عدة مرات على الفشل. لا تحسب نحو ممثلين. |
loopdelay | تأخير هذا بعد فترة طويلة من الحلقة أو إعادة المحاولة. الافتراضي = 60 ثانية إذا لم يتم تعيينه. |
delaymult | اضرب التأخير بعد كل حلقة. افتراضي إلى 2 (تأخير مزدوج كل حلقة في وضع إعادة المحاولة) |
| بيئة | |
nice | ابدأ السيناريو مع UNIX قيمة لطيفة. القيم العليا أجمل لعمليات أخرى |
nologs | حذف السجلات إذا قام البرنامج النصي بإرجاع الكود 0 (الكل على ما يرام) |
noerrs | لا تنبه أي أخطاء نصية |
localdir | قم بتشغيل نص من نفس الدليل الذي يوجد فيه. |
timeout | حان الوقت للسماح للنص بالركض قبل قتله. |
environs | تعيين المتغيرات البيئية قبل البدء. التنسيق: environs VAL1=TEXT $ VAL2=TEXT (متغيرات منفصلة مع $) |
shell | مجموعات subprocess.run(shell=True)يسمح بالوصول إلى ميزات Shell المتقدمة في القيادة ، ولكن يعتبر مخاطر أمنية. |
تذكير : استخدم * للحقول التي لا تحتاج إلى ملءها. يجب أن تحتوي جميع الحقول الخمسة على حرف واحد على الأقل.
مطلوب xprintidle للحصول على عدد الثواني في الخمول.
لاستخدام أدوات مراقبة النظام لمجتمع cpu أو network أو disk ؛ يرجى تثبيت psutil مع: python3 -m pip install psutil
لست متأكدًا مما إذا كان جدولك سيعمل بشكل صحيح؟ قم بتشغيل البرنامج باستخدام خيار الاختبار أو فقط ضع ## قبل كل مسار نصي لإظهار ما الذي ستفعله. يتم الاحتفاظ بسجلات في /tmp /lazycron_logs
--idlebatt (minutes) --idle (minutes) -اذهب إلى النوم بعد عدة دقائق أثناء توصيله.
suspend إلى قائمة Requirements من أجل تشغيلها قبل التعليق. - سوف تنتظر LC دورة واحدة بعد تشغيل برنامج تعليق قبل وضع الكمبيوتر في النوم. إذا أظهر الكمبيوتر النشاط في هذه الفترة ، فسيتم إلغاء النوم. النصوص الخاصة بي تعمل فقط مرة واحدة في اليوم!
0 فيه ليس *Xprintidle لا يمكن فتح Diplay
crontab أو غيرها من المحطة غير المباشرة ، فيجب عليك تصدير العرض أولاً. على سبيل المثال ، قم بتشغيل export DISPLAY=:0ssh ، فتأكد من إرفاق الجلسة مع علامة -x: ssh -X أيضًا قم بإعادة توجيه X11 باستخدام X11Forwarding yes In /etc/ssh/sshd_config وإعادة تشغيل SSH.كيف يمكنني الحصول على رسائل على سطح المكتب إذا فشل البرنامج؟
تثبيت وحدة Pyqt6 Python من PIP (المفضل): sudo pip install PyQt6
أو تثبيت تطبيق الطرف الثالث: zenity sudo apt install zenity
ماذا تعني قائمة الأرقام في كل مرة يتم فيها تشغيل البرنامج في --verbose = 2 mode?
إنه تاريخ من أوقات الجري. بدلاً من تسجيل Timestamp UNIX ، وجدت أنه من المفيد تسجيل الثواني رقم منذ بدء السجل.
أضف هذه الأرقام إلى الطابع الزمني في بداية السجل للحصول على طابع زمني UNIX دقيق عندما بدأ كل برنامج.
الأفكار التي يمكن تنفيذها في المستقبل. تقديم تقرير خطأ إذا كان مع العلامة "اقتراح" إذا كانت هذه أو فكرة أخرى تهمك:
منطق منطقي للمتطلبات: idle 2m OR today 3h
AND .دعم Mac / Windows
حقول متطلبات جديدة ، اسمحوا لي أن أعرف ما تريد رؤيته!