cron - मैं विशिष्ट समय सीमा के भीतर क्रॉन कमांड को कैसे सक्रिय कर सकता हूं?




crontab archlinux (2)

मेरे सिस्टम के बारे में मूलभूत जानकारी: मेरे पास संगीत प्रणाली है जहां लोग विशिष्ट समय पर शुरू और समाप्त होने के लिए गाने शेड्यूल कर सकते हैं।

ओएस: आर्क लिनक्स

यह इस समय दो क्रोन सेट करता है कोई 1.50 ("खेल आदि" जैसे कमान के साथ शुरू होने वाला समय) और एक अन्य सेट को 3.20 पर देता है (समाप्ति समय "अंत आदि" जैसे कमांड के साथ)।

मेरा सेटअप पूरी तरह से काम करता है और मैं आदि आदि आदि हटा सकते हैं, लेकिन अब मुझे एक समस्या दिखाई दे रही है! अगर मैं उपरोक्त समय सेट करता हूं और सिस्टम को बंद कर देता हूं (मेरा सिस्टम रास्पबेरी पीआई है) और पीछे मुड़ते हैं तो हम कहते हैं कि 2.00 और मुझे 1.50 की समयसीमा याद आती है, संगीत शुरू होता है (जाहिर है) और मैं इसे बनाने की कोशिश करना चाहता हूं बात यह है कि मैं इसे किसी रेंज के भीतर कैसे बदल देता हूं, वह कहता है: 1.50 - 3.20 यह प्ले कमांड शुरू करेगा। लेकिन यह एक बार आदेश चलाएगा!

मैं चारों ओर देख रहा था और मुझे मिल गया आदेश की तरह था:

0 1.50-3.20/2 * * * your_command.sh

लेकिन हर 2 घंटे चलाने के लिए मैं इसे एक बार केवल इन बार के बीच चलाना चाहता हूं? धन्यवाद!


आप कमांड और इसके उपयोगिताओं को देख सकते हैं।

SYNOPSIS
     at [-q queue] [-f file] [-mldbv] time
     at [-q queue] [-f file] [-mldbv] -t [[CC]YY]MMDDhhmm[.SS]
     at -c job [job ...]
     at -l [job ...]
     at -l -q queue
     at -r job [job ...]

     atq [-q queue] [-v]

     atrm job [job ...]

     batch [-q queue] [-f file] [-mv] [time]

पर भविष्य में किसी बिंदु पर एक बार नौकरियां चलाने के लिए अच्छा है। यह इन नौकरियों की एक कतार रखता है, ताकि आप इसे विभिन्न समय विशिष्टताओं की एक महान विविधता के साथ समयबद्ध करने के लिए उपयोग कर सकें।

क्रोन मेरी राय में नौकरियों के लिए एक अनुसूचक है जिसे बार-बार दोहराया जा सकता है

तो आपके लिए एक त्वरित और गंदे उदाहरण:

echo 'ls -lathF' | at now + 1 minute

उम्मीद के अनुसार आप एक मिनट में चलने वाली नौकरी देखेंगे। नौकरियों की सूची देखने के लिए आटैक की कोशिश करें।

जब काम किया जाता है, तो डिफ़ॉल्ट रूप से आपके उपयोगकर्ता को आउटपुट भेजा जाएगा।


आप एक अतिरिक्त क्रॉन जॉब जोड़ सकते हैं जो हर रीबूट पर एक स्क्रिप्ट शुरू करता है। उदाहरण के लिए, आप अपने क्रंटैब में इस तरह एक पंक्ति जोड़ सकते हैं:

@reboot /home/pi/startplayback.sh

आपकी startplayback.sh स्क्रिप्ट की जांच करनी चाहिए कि वर्तमान समय वांछित अवधि के भीतर है और वांछित कमांड चलाएगा यदि यह है। उदाहरण के लिए नीचे दिए गए कोड प्ले को प्रिंट करेंगे! अगर स्क्रिप्ट 1:50 और 3:20 के बीच चलती है आप प्रतिध्वन 'प्ले!' की जगह ले सकते हैं पूरी तरह से चलाने के द्वारा

#!/bin/bash

current=$(date '+%H%M')
(( current=(10#$current) ))
((current > 150 && current < 320 )) && echo 'PLAY!'

PS अपनी स्क्रिप्ट को निष्पादन योग्य sudo chmod +x startplayback.sh बनाने के लिए मत भूलना