কীভাবে একজন অস্থায়ী ফাইলের জন্য এস.এস.এথেকে একটি .tar সংরক্ষণাগারটি প্রেরণ করতে পারেন? টারে "-f -" বিকল্পটি কী?


2

অস্থায়ী ফাইল তৈরি না করে আমি কীভাবে একটি আর্কাইভের টেক কমান্ডের সাহায্যে আর্কাইভের সংকোচনতা এবং সংক্ষেপণ করতে পারি:

আমি একটি উদাহরণ:

ScriptClient.sh

#!/bin/bash
tar -cf - myFile.txt | ssh $IP_SERVER ./ScriptServer.sh 

ScriptServer.sh

#!/bin/bash
tar -x -C ~/backups/ -f -

এই কোড স্নিপেটটি আমার নয়, এবং আমি বুঝতে পারি না -f -টর কমান্ডে কীভাবে কাজ করে, ম্যান পেজটি অকেজো।

উত্তর:


1

সহ -f archive.tar, tar -cসংরক্ষণাগারটিতে লিখতে হবে, tar -xএটি থেকে নিষ্কাশন করবে। -f -একটি বিশেষ সিনট্যাক্স যার অর্থ "স্টাডাউট থেকে লিখুন" (তৈরি করা থাকলে) বা "স্টিডিন থেকে পড়া" (যদি এক্সট্র্যাক্ট করা হয়)।

এটি tarপাইপগুলিতে ব্যবহার করতে দেয় । ক্লায়েন্টের কমান্ডের পাইপ tarথেকে ssh। রিমোট সাইডে এসএসএইচ সার্ভার চালিত হয় ./ScriptServer.shএবং আগত স্ট্রিমটিকে তার স্টিডিনে ধাক্কা দেয়। tar -f -স্ক্রিপ্টের ভিতরে এই স্ট্রিমটি পড়ে।

আপনি ঠিক বলেছেন -f -যা নথিবদ্ধ নয় man 1 tar(কমপক্ষে আমি পড়েছি ম্যানুয়ালগুলিতে)। -fসরঞ্জাম ছাড়া স্ট্যাডআউট বা স্ট্ডিন যেভাবেই ব্যবহার করা উচিত। -স্ট্যাডআউট বা স্টিডিনের দিকে সুস্পষ্টভাবে নির্দেশ করতে বিশেষ কয়েকটি "ফাইল নাম" হিসাবে অন্যান্য কয়েকটি সরঞ্জাম সমর্থন করে ; আমি অনুমান সমর্থনে -f -মধ্যে tarশুধু এই আধা মান করার জন্য একটি সম্মতি নেই।


1

-f -ট্যার কমান্ডে কীভাবে কাজ করে তা আমি বুঝতে পারি না , ম্যান পেজটি অকেজো।

আপনি কোন manপৃষ্ঠায় তাকিয়ে আছেন? আপনার সিস্টেমের কমান্ড লাইন থেকে একটি man tarবা অন্য কিছু? জন্য এই অনলাইন man পৃষ্ঠা চেক করা হচ্ছেtar ভাল -as এই এক হিসাবে নিম্নলিখিত -shows:

-f, --file=ARCHIVE
use archive file or device ARCHIVE

তাই The -fএকটি নির্দিষ্ট ফাইল থেকে ইনপুট পড়তে হবে ... কিন্তু তারপর কি হল -পরে -f? এটি নিশ্চিত যে নরক হিসাবে কোনও ফাইল নয়। যে মূলত একটি বিশেষ অক্ষর এই কম্যান্ড-কহন থেকে ডেটা কেস-পেতে stdin(আদর্শ ইনপুট) ... এবং যে stdinপ্রথম স্ক্রিপ্ট আউটপুট-মাধ্যমে বংশীধ্বনিতুল্য থেকে আসে |গন্তব্য উপর প্রাপ্তির স্ক্রিপ্টের নল SSH- র মাধ্যমে।


0

এখানে রিসিভারের দিক থেকে স্ক্রিপ্ট তৈরি না করে একটি উদাহরণ। স্থানীয় থেকে রিমোট ইউনিক্সে সঙ্কুচিত প্রবাহের মাধ্যমে ফাইল স্থানান্তর করতে:

LocalDir="./"
LocalFile="myFile.txt"
RemoteIP="192.168.1.1"
RemoteDir="~/backups/"

cd "$LocalDir"
tar -cf - "$LocalFile" | ssh $RemoteIP "cd '$RemoteDir'; tar -xf -"

পসিক্স টারগুলি ফাইলগুলি সংকুচিত করে না, কেবল সম্মিলিত করে। এছাড়াও আপনি এইভাবে হালকা সংক্ষেপণ যুক্ত করতে পারেন

tar -cf - "$LocalFile" | gzip -1 | \
   ssh $RemoteIP "cd '$RemoteDir'; gzip -cd | tar -xf -"

স্থানান্তর করার বৃহত্তর সময়ের কারণে আপনাকে গভীর সংকোচনের যোগ দেওয়ার পরামর্শ দিচ্ছি না।

যদি আপনি ওয়ান লাইনার চান তবে এটি এখানে:

tar -cf - myFile.txt | gzip -1 | ssh 192.168.1.1 "cd backups; gzip -cd | tar -xf -"

আরএইচইল 6 থেকে সোলারিস 11 এবং পিছনে সোলারিস থেকে আরএইচইএলে স্থানান্তর করার জন্য পরীক্ষা করা হয়েছে।


-1

প্রথম কমান্ড "tar -cf -" একটি নিয়মিত ফাইলের পরিবর্তে স্ট্যান্ডার্ড আউটপুট (stdout) এ টার তৈরি করবে।

এটি এসএসএসের মাধ্যমে স্টিডিন হিসাবে প্রেরণ করা হবে এবং সার্ভার-স্ক্রিপ্ট দ্বারা এটি ব্যবহার করা হবে।

আরও দেখুন: https://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/ এবং https : //www.linuxj Journal.com/content/working-stdin- এবং-stdout- এ

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