আমি ssh এর মাধ্যমে সিগন্যাল (সাইন ইন সর্বাধিক গুরুত্বপূর্ণ) প্রেরণে সক্ষম হতে চাই।
এই আদেশ:
ssh server "sleep 1000;echo f" > foo
সার্ভারে ঘুম শুরু করবে এবং 1000 সেকেন্ড পরে এটি আমার লোকাল মেশিনে ফাইল ফুতে 'f \ n' রাখবে। আমি যদি সিটিআরএল-সি টি চাপি (অর্থাত্ এসআইএসএনটি এসএসএসে প্রেরণ করি) এটি এসএসএসকে মেরে ফেলবে, তবে এটি দূরবর্তী সার্ভারে ঘুমকে হত্যা করবে না। আমি এটি দূরবর্তী সার্ভারে ঘুমকে মেরে ফেলতে চাই।
সুতরাং আমি চেষ্টা করেছি:
ssh server -t "sleep 1000;echo f" > foo
তবে স্টিডিন যদি টার্মিনাল না হয় তবে আমি এই ত্রুটিটি পেয়েছি:
Pseudo-terminal will not be allocated because stdin is not a terminal.
এবং তারপরেও সাইন ইন এখনও ফরওয়ার্ড করা হয়নি।
সুতরাং আমি চেষ্টা করেছি:
ssh server -t -t "sleep 1000;echo f" > output
তবে foo এ আউটপুটটি 'f \ n' নয় বরং 'f \ r \ n' হয় যা আমার পরিস্থিতিতে বিপর্যয়কর (যেমন আমার আউটপুট বাইনারি ডেটা) is
উপরের অংশে আমি "স্লিপ 1000; ইকো এফ" ব্যবহার করি, তবে বাস্তবে যা ব্যবহারকারী সরবরাহ করে, তাতে এটি যে কোনও কিছু থাকতে পারে। তবে, যদি আমরা এটিকে "1000 1000; ইকো এফ" এর জন্য কাজ করতে পারি তবে আমরা সম্ভবত এটি সমস্ত বাস্তব পরিস্থিতিতে কাজ করতে পারি।
আমি অন্য প্রান্তে সিউডো-টার্মিনাল পাওয়ার বিষয়ে সত্যই চিন্তা করি না, তবে আমি আমার সাইন ইন ফরোয়ার্ডে এসএসএস পাওয়ার অন্য কোনও উপায় খুঁজে পাচ্ছি না।
অন্য উপায় আছে?
সম্পাদনা:
ব্যবহারকারী স্ট্যান্ডিনের থেকে বাইনারি ডেটা পড়ার জন্য কমান্ড দিতে পারে, যেমন:
seq 1000 | gzip | ssh server "zcat|bzip2; sleep 1000" | bzcat > foo
ব্যবহারকারী সিপিইউ নিবিড় এমন কমান্ড দিতে পারে যেমন:
ssh server "timeout 1000 burnP6"
Edit2:
আমার জন্য যে সংস্করণটি কাজ করে বলে মনে হচ্ছে তা হ'ল:
your_preprocessing |
uuencode a | ssh -tt -oLogLevel=quiet server "stty isig -echoctl -echo ; uudecode -o - |
your_command |
uuencode a" | uudecode -o - |
your_postprocessing
আমাকে সঠিক দিকে নির্দেশ করার জন্য ডিজিটাল_ইনফিনিটির ধন্যবাদ।
ssh
কি উদাহরণ দেখাতে চেয়েও বেশি জটিল করা আবশ্যক কারণ আপনার আচরণ আপনি একটি সহজ পুনর্বিন্যাস সাথে করতে চান পেতে পারেন,:sleep 1000 && ssh server "echo f" > foo
(এটা হয়েছে হতে&&
, না;
, যাতে হত্যাsleep
প্রতিরোধssh
। চালু করা থেকে কমান্ড) যদি আমি ঠিক আছে, অনুগ্রহ করে আপনার উদাহরণগুলি আপনার প্রকৃত ব্যবহারের আরও প্রতিনিধি করুন, যাতে আরও ভাল উত্তর দেওয়া যায়।