সিরিয়াল কনসোল প্রোগ্রামগুলি - আপনি সংযোগের অন্য প্রান্তে ব্যবহার করবেন রিমোট সাইডে ফাইল প্রেরণের কিছু উপায় থাকবে। আপনি কীভাবে এটি সম্পর্কে যাচ্ছেন তা নির্ভর করে আপনার রিমোট সিস্টেমে কী সংস্থান রয়েছে on
আমার কাছে আছে lrzsz
বা kermit
রিমোট সাইডে
সবচেয়ে সহজ কেসটি যদি আপনার কাছে দূরবর্তী দিকে যেমন শক্ত বাইনারি ফাইল স্থানান্তর প্রোগ্রাম ইনস্টল করা থাকে lrzsz
বা kermit
। এটি আজকের চেয়ে একসময় বেশি সাধারণ ছিল, তবে আপনার নির্দিষ্ট সিস্টেমে এখনও এর মধ্যে একটি থাকতে পারে।
আপনি স্থানীয় দিকে যে সিরিয়াল কনসোল প্রোগ্রামটি ব্যবহার করছেন সেটি অবশ্যই জেমোডেম বা কেরমিট আপলোড করার একটি উপায় রয়েছে যা আপনাকে যা যা প্রয়োজন সরাসরি পাঠাতে দেয়।
জেমোডেমের ক্ষেত্রে, কেবল rz
রিমোট সিস্টেমে টাইপ করুন , এটি একটি বিশেষ স্ট্রিং প্রেরণ করে যা স্থানীয় সিরিয়াল টার্মিনালটি বুঝতে হবে, যার ফলে এটি ফাইল চয়নকারী ডায়ালগটিকে পপ আপ করে।
কেরমিট একটি সহজ প্রোটোকল, সুতরাং আপনাকে সেই ক্ষেত্রে ম্যানুয়ালি স্থানান্তর শুরু করতে হবে।
আমার কাছে বাইনারি ফাইল স্থানান্তর প্রোগ্রাম নেই, তবে আমার কাছে uuencode
/base64
মত একটি সঠিক বাইনারি ফাইল ট্রান্সফার প্রোগ্রাম ব্যবহার করার জন্য বেশ কিছু সুবিধা আছে lrzsz
বা kermit
: দক্ষতা, checksumming, স্বয়ংক্রিয় চেষ্টার, বন্ধ্যা স্থানান্তর পুনরারম্ভ, একাধিক ফাইল ট্রান্সফার ইত্যাদি, কিন্তু এই হয় বিলাসিতার । আপনার যদি কেবল একটি ফাইল প্রেরণ করতে হয় বা আপনি ফাইল খুব কমই পাঠাচ্ছেন তবে আপনি এএসসিআইআই আপলোডগুলি নিয়ে দূরে যেতে পারেন।
যেহেতু টার্মিনাল প্রোটোকলগুলি বাইনারি ডেটা ফাইলে ঘটে এমন অনেকগুলি বাইট মানকে ব্যাখ্যা করে, আপনি একই সংযোগের মাধ্যমে ফাইলটি সরাসরি প্রেরণ করতে পারবেন না; যদি আপনি এটি করেন তবে উভয় প্রান্তে টার্মিনাল এমুলেশন কোড কিছু ডেটা ব্যাখ্যা করার চেষ্টা করবে, ডেটাটিকে দূষিত করবে এবং সম্ভবত টার্মিনাল হ্যান্ডলিং কোডকেও বিভ্রান্ত করবে।
আপনি স্থানীয় দিকে ASCII এর নিরাপদ সাবসেটে বাইনারি ডেটা এনকোড করে এটিকে ঘুরে দেখেন, তারপরে এটিকে রিমোট পাশের কাঁচা বাইনারি ডেটাতে ফিরিয়ে আনুন। এটি uuencode
এবং base64
প্রোগ্রামগুলি কেবলমাত্র অল্প বয়সী অ্যালগরিদম পছন্দগুলিতে পৃথক হয়।
স্থানীয় সিস্টেমে, আপনি ফাইলটি এনকোড করেছেন: ²
$ uuencode -o sbf.uue some-binary-file.gz some-binary-file.gz
তারপরে আপনি রিমোট সিস্টেমে এই কমান্ডটি টাইপ করুন এবং স্থানীয় সিরিয়াল কনসোলের "এএসসিআইআই আপলোড" বৈশিষ্ট্যটি ব্যবহার করে ফাইলটি প্রেরণ করুন:
$ cat | uudecode
ফাইল আপলোড শেষ হয়ে গেলে, Ctrl-Cবাইরে বেরোনোর জন্য চাপুন cat
। আপনি যেমন চাইছিলেন তেমনই এখন রিমোট সিস্টেমে আপনার ডিকোড ফাইল রয়েছে।
তবে আমার কাছে পাঠানোর মতো অনেকগুলি ফাইল রয়েছে এবং প্রিন্টযোগ্য এএসসিআইআই ট্রান্সকোডিং একটি ব্যথা!
নিজেকে উচ্চ স্তরের প্রযুক্তির বুটস্ট্র্যাপ করা শক্ত নয়। যদি রিমোট সিস্টেমে সি সংকলক থাকে তবে আপনি রিমোট সিস্টেমকে lrzsz
উত্স কোডের একটি অনুলিপি প্রেরণ করতে পূর্বের কৌশলটি ব্যবহার করতে পারেন । স্থানীয় দিকে:
$ uuencode -o lrzsz.tgz.uue lrzsz-0.12.20.tar.gz lrzsz-0.12.20.tar.gz
তারপরে রিমোট সিস্টেমে সিরিয়াল কনসোল প্রোগ্রামের মাধ্যমে এটি টাইপ করুন:
$ cat | uudecode
^C
$ tar xvf lrzsz-0.12.20.tar.gz
...build lrzsz normally
আপনি প্রথম কমান্ডটি শুরু করার পরে, lrzsz.tgz.uue
দূরবর্তী সিস্টেমে ফাইলটির একটি "ASCII আপলোড" করুন। পাইপলাইন ইউইনকোডড ডেটা গ্রহণ করে এবং এটি আপনার জন্য একটি বাইনারি টারবালকে ডিকোড করে, যা আপনি আনপ্যাক এবং তৈরি করতে পারেন।
তবে রিমোট সিস্টেমে আমার কাছে সি কম্পাইলার নেই
আপনি এমনকি দূরবর্তী সিস্টেমে একটি কম্পাইলার না থাকে তাহলে, আপনি পারেন ক্রস-কম্পাইলrz
স্থানীয় সিস্টেমে (অথবা যাই হোক না কেন) প্রোগ্রাম এবং উপরোক্ত কৌশল ব্যবহার করে দূরবর্তী সিস্টেমে পাঠিয়ে দিন।
পাদটিকা:
মিনিকম , picocom , পুটিং , ভানডায়্ক সিআরটি ...
আপনাকে এই সংস্করণে uuencode
দুবার ইনপুট ফাইলের নাম দিতে হবে , একবার ইনপুট ডেটার উত্সের নাম দিতে হবে এবং আবার কোনও ডায়াগোডকে কোনও আউটপুট ফাইলে ডিকোড করার সময় দূরবর্তী সিস্টেমটি ফাইলটি কী কল করা উচিত তা ঘোষণা করতে হবে। দূরবর্তী সিস্টেমটির আউটপুট ফাইলটির আলাদা নাম থাকতে পারে তা আপনি বুঝতে পারবেন ably
আপনার স্থানীয় সংস্করণটি uuencode
আলাদা আচরণ করতে পারে।