ग्न्यू/लिनक्स एडमिनिस्ट्रेटर होते हुए आपको कभी ना कभी शेल स्क्रिप्ट के जरिए फाइल बनाने की आवश्यकता पड़ेगी इस फाइल का नाम यूनिक होना चाहिए और इसी फाइल में शेल स्क्रिप्ट से आप इंफॉर्मेशन कैसे लिखेंगे ।आइए इस पोस्ट में देखें।
फाइल के लिए अनूठा नाम कैसे बनाएँगे।
अनूठा नाम बनाने का सबसे उत्तम तरीका है यूनिक्स टाइमस्टैंप का प्रयोग करना। अगर आप और भी ज्यादा अनूठा नाम चाहते हैं तो इसमें और कुछ अक्षर जोड़ सकते हैं। ( टाइमस्टैंप वैसे ही अनूठा होता है तो एक ही समय पर दो फाइलों का एक ही टाइमस्टैंप का प्रयोग करना ऐसा होने की संभावना काफी कम है।)
देखे हमें यह टाइमस्टैंप कैसे मिलेगा।
लिनक्स की डेट (date) कमांड का प्रयोग हम न सिर्फ डेट दिखाने के लिए कर सकते हैं परंतु डेट सेट करने के लिए भी कर सकते हैं। इसके अलावा हम डेट कमांड को अपने हिसाब से भी फॉर्मेट कर सकते हैं और हम डेट का आउटपुट टाइमस्टैंप में भी ले सकते हैं। डेट कमांड को कुछ इस तरह चलाने से date "+%s" हमें कुछ इस तरह का आउटपुट मिलेगा।
जो कि कुछ इस तरह दिखेगा । 1589718363
वैसे तो टाइमस्टैंप एक अनूठी संख्या होती है पर इस संख्या को देखते हुए हम यह अनुमान नहीं लगा पाएंगे कि यह फाइल कब बनाई गई थी।और इसको डेट में बदलने के लिए हमें कुछ और काम करने पड़ेंगे ।
तो अब हम टाइमस्टैंप की जगह कुछ इस तरह का डेट आउटपुट फॉरमैट बना लेते हैं। जो कि साल महीना दिन घंटा मिनट और सेकंड दिखाएगा।
अब हम डेट कमांड को कुछ इस तरह उपयोग करेंगे।
date "+%Y%m%d%H%M%S"
इसका आउटपुट हमें कुछ इस प्रकार मिलेगा 20200517180729 अर्थात 2020 साल, 05 महीना, 17 दिन, 18 घंटा, 07 मिनट, 29 सेकंड।
अब हम इसको एक वेरिएबल में रख लेते हैं।
FileDateName=`date "+%Y%m%d%H%M%S"` ( कमांड में कृपया बैक टिक का प्रयोग करें।)
इस तरह हमने फाइल का नाम तैयार कर लिया है और उसे एक वेरिएबल में रख लिया है।
अब असल फाइल बनाने के लिए निम्नलिखित कमांड का प्रयोग करें।
touch $FileDateName
अब आपकी फाइल तैयार है अब इसमें आप अपनी आवश्यकता अनुसार कंटेंट डाल सकते हैं या जोड़ सकते हैं।
मान लीजिए मुझे अपने कंप्यूटर की मेमोरी के उपयोग की जानकारी एक फाइल में डालनी है जब भी मैं शेल स्क्रिप्ट को रन करूं। इसके लिए सबसे पहले मैं फ्री कमांड का प्रयोग करूंगा। जिसका आउटपुट कुछ ऐसा दिखता है।
total used free shared buffers cache available Mem: 5837 2493 933 560 119 2291 2526 Swap: 17597 252 17345
अब मान लीजिए ऊपर के आउटपुट में से मुझे मेमोरी के बारे में जानकारी फाइल में रखनी है। तो मुझे दूसरी पंक्ति से दूसरा तीसरा और चौथा स्तंभ अर्थात कॉलम काटकर फाइल में डालना है।
इसके लिए मैं निम्नलिखित कमांड का प्रयोग करूंगा।
free -mw | head -n2 | tr -s ' ' | cut -d' ' -f2,3,4 // इससे आउटपुट कुछ ऐसा दिखता है
total used free
5837 2539 1062
चलिए अब इसे एक शैल स्क्रिप्ट में डालते हैं।
#!/bin/bash
FileDateName=`date "+%Y%m%d%H%M%S"`
touch $FileDateName
free -mw | head -n2 | tr -s ' ' | cut -d' ' -f2,3,4 > $FileDateName
तो देखा आपने कितना सरल है ऐसा करना।
Add new comment