टाइम स्टैम्प पर आधारित फाइल शैल स्क्रिप्ट में कैसे बनाएं और उसमें डेटा कैसे स्टोर करें।

  • Posted on: 17 May 2020
  • By: dexter
Share

ग्न्यू/लिनक्स एडमिनिस्ट्रेटर होते हुए आपको कभी ना कभी शेल स्क्रिप्ट के जरिए फाइल बनाने की आवश्यकता पड़ेगी इस फाइल का नाम यूनिक होना चाहिए और इसी फाइल में शेल स्क्रिप्ट से आप इंफॉर्मेशन कैसे लिखेंगे ।आइए इस पोस्ट में देखें।

फाइल के लिए अनूठा नाम कैसे बनाएँगे।

अनूठा नाम बनाने का सबसे उत्तम तरीका है यूनिक्स टाइमस्टैंप का प्रयोग करना। अगर आप और भी ज्यादा अनूठा नाम चाहते हैं तो इसमें और कुछ अक्षर जोड़ सकते हैं। ( टाइमस्टैंप वैसे ही अनूठा होता है तो एक ही समय पर दो फाइलों का एक ही टाइमस्टैंप का प्रयोग करना ऐसा होने की संभावना काफी कम है।) 

देखे हमें यह टाइमस्टैंप कैसे मिलेगा। 

लिनक्स की डेट (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

तो देखा आपने कितना सरल है ऐसा करना।

Language: 
हिंदी

Add new comment

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.