এসএসএইচ আউটপুট লাইন বাফার হয় না?


35

আমি এর মতো একটি রিমোট মেশিনে স্ক্রিপ্ট চালাচ্ছি:

ssh $host "pip install -r /path/to/requirements.txt"

তবে আউটপুটটি লাইফ বাফার নয়; একবারে একটি লাইন ফিরে আসার পরিবর্তে সংযোগটি শেষ হওয়ার সাথে সাথে সমস্ত লাইন (10 ডলার) সমস্ত একবারে মুদ্রণ করা হয়।

এই কি হচ্ছে? তাদের লাইনে বাফার হতে বাধ্য করার কোনও উপায় আছে কি?

(এছাড়াও, সুস্পষ্টভাবে বর্ণনা করতে: যখন আমি $hostকমান্ডটি "ম্যানুয়ালি" চালনা করি এবং আউটপুটটি লাইনটি বাফার হয়, যেমনটি প্রত্যাশিত হয়)

উত্তর:


45

ssh -t ...একটি সিডো-টিটি বরাদ্দকে জোর করার জন্য ব্যবহার করুন (আপনি যখন ssh- এর মাধ্যমে সাধারণত লগ ইন করেন তখন যা পাবেন)


দুর্ভাগ্যক্রমে সাহায্য করেনি। এটি এমটিইউতেও সমস্যা হতে পারে তবে এটির
নিক রোজ

রেফ ব্যবহার করে নীচে ম্যাগনাসের মন্তব্য দেখুন -tt- যা আমার পক্ষে কাজ করেছিল যখন তা হয়নি।
টম ডাল্টন

23

রায়ান ফক্সের উত্তরে কিছুটা প্রসারিত করার জন্য: টার্মিনালের সাথে কথা বলার সময় অনেকগুলি প্রোগ্রাম (সর্বাধিক? - এটি কোনও সি প্রোগ্রামের জন্য ডিফল্ট) লাইন-বাফার স্টাডাউট, তবে অন্যথায় পুরোপুরি বাফার করে। (সি স্ট্যান্ডার্ড নির্দিষ্ট করে যে স্টাডাউট প্রথমে পুরোপুরি বাফার হয় যখন "" ইন্টারেক্টিভ ডিভাইসকে উল্লেখ না করার জন্য এটি নির্ধারণ করা যেতে পারে "))

সুতরাং আপনি যা দেখছেন তা হ'ল আপনি যে প্রোগ্রামটি দূর থেকে চালাচ্ছেন (স্টাডাউট হিসাবে দেওয়া হয়েছে) এর আউটপুট লাইন-বাফার নয়; এসএসএস যখন যা পায় তখন তা দিয়ে যায়। (আমি মনে করি এসএসএস আসলে তার আউটপুটে কোনও বাফারিং করে না - এটি দূরবর্তী প্রোগ্রামের উদ্দেশ্য কী তা ব্যবহারকারী দেখেন তা নিশ্চিত করার জন্য এটি ন্যূনতম wayন্দ্রজালিক উপায়))


নাম প্রকাশে অনিচ্ছুক একজন ব্যবহারকারী প্রস্তাব দেওয়া যে stdout- এ সম্পূর্ণরূপে বাফার হয় লাইন বাফার না
মাইকেল Mrozek

ডেভ ভ্যান্ডার্ভিস আমাকে বাইরে থাকা ব্যান্ডকে বলেছে যে তিনিই সেই সম্পাদনা করেছিলেন এবং এটি সঠিক (যেমন, স্টাডাউট প্রথমে পুরোপুরি বাফারযুক্ত, লাইন বাফার নয়)।
ডেভিড ওলবার

6

রায়ান ফক্সের উত্তরের আরও প্রসারিত ssh -tকরার জন্য, আমার পক্ষে কোনও কাজ ssh -ttহয়নি , তবে করেছিল। St ম্যান পৃষ্ঠাটি -t সম্পর্কে দেখুন:

একাধিক-টি বিকল্পগুলি tty বরাদ্দকে বাধ্য করে, যদিও ssh এর কোনও স্থানীয় tty নেই

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