কিভাবে স্ক্রিন এবং মেল উভয় আউটপুট প্রেরণ?


9

আমি স্ক্রিপ্টের শেষে ইমেল প্রেরণের জন্য নিম্নলিখিতটি ব্যবহার করি।

echo "Script finished on `date`" | /usr/bin/Mail -s "Script complete" "myaccount@myserver.com".

তবে আমি একই বার্তাটি স্ক্রিনেও প্রতিধ্বনি করতে চাই। একই বিবৃতিতে আমি কীভাবে এটি করব?

উত্তর:


19

teeস্ট্যাডারের পাশাপাশি মেসেজের স্ট্যান্ডআউটের সবচেয়ে সহজ উপায় হ'ল :

echo "Script finished on date" | tee /dev/stderr \
    | /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"

teestdout সহ একাধিক গন্তব্যগুলিতে এর ইনপুটটি সদৃশ করে। ডিফল্টরূপে, stderr এবং stdout উভয়ই পর্দায় যায়; আপনি stdout এ পুনঃনির্দেশ করছেন Mail, কেবল স্ট্যাডারকে স্ক্রিনে রেখে।

আপনার যদি কোনও কারণে স্টাডাউটে এটি প্রয়োজন হয় তবে আপনি সাব-শেল (বা অন্য কয়েকটি উপায়ে) ব্যবহার করে এটিকে পুনর্নির্দেশ করতে পারেন:

(
    echo "Script finished on date" | tee /dev/stderr \
        | /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
) 2>&1

3
বিকল্পভাবে, একটি ফাইলে টি করুন এবং তারপরে ফাইলটি মেইল ​​করুন ... আউটপুট বিশাল আকারের হলে খুব দরকারী এবং আপনি এটি প্রেরণ করতে চান, উদাহরণস্বরূপ, বেস 64-এনকোডেড জিএমআইপি এমআইএমআই সংযুক্তি হিসাবে। বা কেবল সমস্ত আউটপুট একটি ফাইলের দিকে পুনঃনির্দেশ করুন (উদাহরণস্বরূপ exec &> $LOGFILE) এবং তারপরে stdout পুনরুদ্ধার করুন, স্ট্যাটআউটে ফাইলটিকে বিড়াল করুন এবং এটি মেল করুন।
কাস

ধন্যবাদ ক্রেগ যেহেতু এই ক্ষেত্রে আমার পাঠ্য খুব ছোট, তাই আমি ডার্বার্টের প্রতিক্রিয়া নিয়ে যাব।
sammy

হুম .. এটি কাজ করেছে তবে আমি বুঝতে পেরেছিলাম যে আমার সমস্যার বিবরণে আমাকে আরও যুক্ত করা দরকার। আমি আমার স্ক্রিপ্টের শেষ লাইন হিসাবে এই সমাধানটি ব্যবহার করেছি। আমার স্ক্রিপ্টের সমস্ত আউটপুট "nohup.out" হিসাবে সংগ্রহ করার জন্য আমি আমার স্ক্রিপ্টে একটি "নোহুপ" কমান্ড ব্যবহার করেছি এবং আমি যা দেখছি কেবল এটিই এই এক লাইনের "স্ক্রিপ্টটি xxxxx এ শেষ হয়েছে"। এই সমাধানটি ব্যবহার করার আগে, আমি সমস্ত স্ক্রিপ্ট আউটপুট জরিমানা করেছি। এই উপায়টি মুছে ফেলার পরিবর্তে আমি কীভাবে এই শেষ এক লাইনের আউটপুট সংযোজন করতে পারি?
sammy

1
"টি-এ" ব্যবহার করে সমস্যার সমাধান হয়েছে।
স্যামি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.