खैर, मैं एक लिनक्स नौसिखिया हूं, और मैं एक साधारण बैश स्क्रिप्ट के साथ एक मुद्दा बना रहा हूं।
मुझे एक प्रोग्राम मिला है जो लॉग फ़ाइल में चल रहा है जबकि यह चल रहा है। समय के साथ लॉग फ़ाइल बहुत बड़ी हो जाती है। मैं एक स्टार्टअप स्क्रिप्ट बनाना चाहूंगा जो प्रोग्राम के प्रत्येक रन के लिए प्रभावी रूप से अलग लॉग फाइल बनाने से पहले प्रत्येक रन से पहले लॉग फाइल को फिर से नाम और स्थानांतरित करेगा। यहाँ मैंने अभी तक क्या किया है:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
जब मैं दौड़ता हूं, तो मैं यह देखता हूं:
: command not found
program
जब मैं लॉग निर्देशिका में सीडी और डीआईआर चलाता हूं, तो मैं यह देखता हूं:
201111211437\r.log\r
क्या चल रहा है? मैं मान रहा हूँ कि कुछ वाक्यविन्यास समस्या मुझे याद आ रही है, लेकिन मुझे यह पता नहीं लग सकता है।
अद्यतन: नीचे शेल्टर की टिप्पणी के लिए धन्यवाद, मुझे इस तथ्य के कारण समस्या का पता चला है कि मैं .sh फ़ाइल को Notepad ++ में विंडोज़ में संपादित कर रहा हूं, और फिर FTP के माध्यम से सर्वर पर भेज रहा हूं, जहां मैं फाइल को ssh के माध्यम से चलाता हूं। । फ़ाइल पर dos2unix चलाने के बाद, यह काम करता है।
नया प्रश्न: मैं पहली बार फ़ाइल को सही तरीके से सहेज सकता हूं, हर बार जब मैं फ़ाइल को फिर से भेजता हूं तो इस फिक्स को करने से बचने के लिए कैसे?
\r
is carriage_return, अपने बैश स्क्रिप्ट की जांच करें, शायद स्क्रिप्ट के अंदर शामिल हो