Bash
विशिष्ट समय पर नौकरियां
खोज…
विशिष्ट समय पर एक बार नौकरी छोड़ें
नोट: आधुनिक वितरण के सबसे पर डिफ़ॉल्ट रूप से स्थापित नहीं है।
अब से किसी अन्य समय में एक बार नौकरी निष्पादित करने के लिए, इस उदाहरण में शाम 5 बजे, आप उपयोग कर सकते हैं
echo "somecommand &" | at 5pm
यदि आप आउटपुट को पकड़ना चाहते हैं, तो आप इसे सामान्य तरीके से कर सकते हैं:
echo "somecommand > out.txt 2>err.txt &" | at 5pm
कई समय स्वरूपों at
समझता है, इसलिए आप भी कह सकते हैं
echo "somecommand &" | at now + 2 minutes
echo "somecommand &" | at 17:00
echo "somecommand &" | at 17:00 Jul 7
echo "somecommand &" | at 4pm 12.03.17
यदि कोई वर्ष या तारीख नहीं दी जाती है, तो यह अगली बार जब आपके द्वारा निर्दिष्ट समय होता है। इसलिए यदि आप एक घंटा देते हैं जो पहले से ही आज बीत चुका है, तो वह कल मान लेगा, और यदि आप एक महीना देते हैं जो इस साल पहले ही बीत चुका है, तो यह अगले साल मान जाएगा।
यह भी nohup के साथ मिलकर काम करता है जैसे आप उम्मीद करेंगे।
echo "nohup somecommand > out.txt 2>err.txt &" | at 5pm
समयबद्ध नौकरियों को नियंत्रित करने के लिए कुछ और आदेश हैं:
- atq सभी समयबद्ध नौकरियों को सूचीबद्ध करता है ( atq ueue)
- atrm एक समय पर नौकरी निकाल देता है ( atr e m ove)
- बैच मूल रूप से एक जैसा होता है, लेकिन केवल तभी काम चलाता है जब सिस्टम लोड 0.8 से कम हो
सभी कमांड लॉग-इन किए गए उपयोगकर्ता की नौकरियों पर लागू होते हैं। यदि रूट के रूप में लॉग इन किया जाता है, तो सिस्टम की व्यापक नौकरियां निश्चित रूप से नियंत्रित की जाती हैं।
Systemd.timer का उपयोग करके बार-बार निर्दिष्ट समय पर कार्य करना
systemd क्रोन का एक आधुनिक कार्यान्वयन प्रदान करता है। एक स्क्रिप्ट आवधिक सेवा को निष्पादित करने के लिए और एक टाइमर फ़ाइल की आवश्यकता नहीं है। सेवा और टाइमर फ़ाइलों को / etc / systemd / {system, user} में रखा जाना चाहिए। सेवा फ़ाइल:
[Unit]
Description=my script or programm does the very best and this is the description
[Service]
# type is important!
Type=simple
# program|script to call. Always use absolute pathes
# and redirect STDIN and STDERR as there is no terminal while being executed
ExecStart=/absolute/path/to/someCommand >>/path/to/output 2>/path/to/STDERRoutput
#NO install section!!!! Is handled by the timer facitlities itself.
#[Install]
#WantedBy=multi-user.target
टाइमर फ़ाइल के आगे:
[Unit]
Description=my very first systemd timer
[Timer]
# Syntax for date/time specifications is Y-m-d H:M:S
# a * means "each", and a comma separated list of items can be given too
# *-*-* *,15,30,45:00 says every year, every month, every day, each hour,
# at minute 15,30,45 and zero seconds
OnCalendar=*-*-* *:01:00
# this one runs each hour at one minute zero second e.g. 13:01:00