पहली बार जब मैंने एक व्यस्त सर्वर का प्रबंधन किया, तो मुझे लोगों द्वारा इसका उपयोग न करने पर इसे रीबूट करने के लिए एक उपयुक्त समय की प्रतीक्षा करनी पड़ी। मैंने देखा कि यह सुबह 3 बजे के आसपास होता है। फिर, मैंने खुद से सोचा: "यह असुविधाजनक है, मुझे सिर्फ अपना सर्वर रीबूट करने के लिए एक अनुचित घंटे पर जागना पड़ता है।" पांच सेकंड बाद मुझे एहसास हुआ कि यह एक बेवकूफी भरा विचार था। "यह Linux है, मुझे यकीन है कि इस तरह के एक साधारण कार्य को स्वचालित करना आसान है।" और इस तरह, at की खोज हुई।
यूटिलिटी का उपयोग करना बहुत आसान है। आप बस समय और तारीख को कमांड लाइन पैरामीटर के रूप में पास करते हैं, और फिर एक या अधिक कमांड दर्ज करते हैं जिन्हें आप निष्पादित करना चाहते हैं।
सर्वर पर इस तरह का प्रोग्राम होना उपयोगी है क्योंकि आप अक्सर चाहते हैं कि यह अनअटेंडेड कार्रवाई करे। लेकिन डेस्कटॉप पर भी at एक बहुत सुविधाजनक टूल हो सकता है। उदाहरण के लिए, मान लें कि आप एक बहुत बड़ी फ़ाइल डाउनलोड करते हैं। आप अपने PC को देर रात में शट डाउन करने के लिए शेड्यूल कर सकते हैं। साथ ही, आप at को उन चीजों की याद दिलाने के लिए कह सकते हैं जो आपको करने की आवश्यकता है। बहुत अधिक कोई भी कार्रवाई जिसके बारे में आप सोच सकते हैं, सही टूल और कमांड लाइन विकल्पों के साथ शेड्यूल की जा सकती है।
विभिन्न Linux डिस्ट्रीब्यूशन पर "at" कैसे इंस्टॉल करें
Debian या Debian-आधारित डिस्ट्रीब्यूशन पर, चलाएं:
sudo apt install at

Fedora पर, चलाएं:
sudo dnf install at
"at" को Arch Linux पर इंस्टॉल करने के लिए:
sudo pacman -S at
और, openSUSE पर:
sudo zypper install at
"at" डेमॉन का स्वचालित स्टार्टअप सक्षम करें और सेवा चलाएं
कुछ डिस्ट्रीब्यूशन बूट पर "at" डेमॉन के स्टार्टअप को स्वचालित रूप से सक्षम कर देंगे। अन्य नहीं करेंगे। जांचें:
systemctl is-enabled atd.service

यदि यह "disabled" कहता है, तो इसे सक्षम करें:
sudo systemctl enable atd.service
और डेमॉन शुरू करें:
sudo systemctl start atd.service
"at" कमांड शेड्यूल करने के लिए तारीख और समय कैसे निर्दिष्ट करें
आप निम्न में से किसी एक रूप का उपयोग कर सकते हैं।
1. निर्दिष्ट संख्या में मिनट, घंटे, दिन या सप्ताह के बाद कमांड चलाएं।
at now + 10 minutes at now + 10 hours at now + 10 days at now + 10 weeks

2. सटीक समय पर चलाएं:
at 23:10
यदि यह पहले से ही 12:00 है, और आप चलाते हैं:
at 11:00
तो कमांड कल, निर्दिष्ट समय पर चलेगा।
3. सटीक समय और तारीख पर चलाएं:
at 12:00 December 31
समय और तारीख निर्दिष्ट करने के अन्य वैकल्पिक तरीके ऑनलाइन "at" मैनुअल में पाए जा सकते हैं।
"at" कमांड का उपयोग कैसे करें
जैसा कि आपने देखा होगा, शेड्यूल समय निर्दिष्ट करने के बाद, आप एक प्रॉम्प्ट पर पहुंच जाते हैं जो निम्न छवि जैसा दिखता है:

यहां, आप बस वे कमांड दर्ज करते हैं जिन्हें आप चलाना चाहते हैं। ये आपके वर्तमान उपयोगकर्ता नाम के तहत निष्पादित होंगे। निर्दिष्ट समय पर आप जिस कमांड को चलाना चाहते हैं उसे टाइप करें और Enter दबाएं। यदि आप बाद में एक कमांड चलाना चाहते हैं, तो उसी प्रक्रिया को दोहराएं। जब आप पूरा कर लें, तो Ctrl + D दबाएं। जब आप उन कुंजियों को दबाएंगे तो <EOT> प्रदर्शित होगा, उसके बाद वह समय जब कमांड निष्पादित की जाएगी।
यदि आप ऐसी कमांड चलाना चाहते हैं जिनके लिए रूट विशेषाधिकारों की आवश्यकता है, तो sudo का उपयोग न करें। याद रखें, कमांड अनअटेंडेड चलेगी, इसलिए sudo काम नहीं करेगा क्योंकि कोई पासवर्ड दर्ज नहीं कर सकता। इसके बजाय, पहले रूट उपयोगकर्ता के रूप में लॉग इन करें:
sudo -i
और फिर "at" कमांड का सामान्य रूप से उपयोग करें। अब, सभी कमांड आपके नियमित उपयोगकर्ता के बजाय रूट के रूप में निष्पादित की जाएंगी।
अपनी कमांड शेड्यूल करने के बाद, टाइप करें:
exit
यह आपको रूट उपयोगकर्ता खाते से लॉग आउट कर देगा।

इस स्क्रीनशॉट में दिए गए उदाहरण में, दो मिनट में शटडाउन शेड्यूल किया गया था। आप इसे अपने उद्देश्यों के लिए अनुकूलित कर सकते हैं।
यदि कंप्यूटर किसी शेड्यूल्ड जॉब के चलने का मौका मिलने से पहले बंद हो जाता है, तो यह अगले बूट पर बस चलेगा (यदि इसका समय बीत चुका है)। उदाहरण के लिए, यदि आप दोपहर 3 बजे जॉब शेड्यूल करते हैं, दोपहर 2 बजे बंद करते हैं, और शाम 4 बजे चालू करते हैं, तो जॉब शाम 4 बजे चलेगा।
शेड्यूल्ड जॉब देखें और/या हटाएं
आप कतारबद्ध जॉब देख सकते हैं:
atq
या
at -l

यह देखने के लिए कि किसी जॉब में कौन सी कमांड शेड्यूल हैं, उस जॉब की उपसर्ग संख्या का उपयोग करें।
at -c 22

आउटपुट की अंतिम पंक्तियां आपको आपके द्वारा शेड्यूल की गई कमांड दिखाएंगी।
किसी जॉब को हटाने के लिए, उसकी उपसर्ग संख्या का उपयोग इस तरह करें:
atrm 22
"at" को ग्राफिकल एप्लिकेशन चलाने के लिए शेड्यूल करें
सबसे पहले, अपने वर्तमान डिस्प्ले वेरिएबल मान का पता लगाएं:
echo $DISPLAY
आमतौर पर, यह :0 होगा।
at को चलाने के लिए शेड्यूल करें। "at" प्रॉम्प्ट में, DISPLAY वेरिएबल को पिछले मान (export DISPLAY=:0) पर सेट करें, और अपना वांछित ग्राफिकल एप्लिकेशन चलाएं।

पिछले स्क्रीनशॉट में उपयोग की गई कमांड का परिणाम निम्न होगा।

अब ग्राफिकल ऐप "आपके सामने" होगा और फोन अलार्म से बेहतर आपको महत्वपूर्ण काम की याद दिलाएगा।
निष्कर्ष
"at" का उपयोग करना आसान है। कठिन हिस्सा एक रचनात्मक तरीका खोजना है जिससे आप वांछित कार्रवाई कर सकें। लेकिन आप बहुत कुछ कर सकते हैं, जैसे डाउनलोड शुरू करना, प्रोग्राम बंद करना, अपने कंप्यूटर को स्टैंडबाय में डालना, और इसी तरह।