আমি একটি করছিলাম: tar -cvf
এবং আমাকে এটি দিয়ে হত্যা করতে হয়েছিল ctrl-C
। আমি জানি আমার একটি করা উচিত ছিল Ctrl-Z
এবং তারপরে টাস্কটিকে অগ্রভাগে ফিরিয়ে আনতে হবে ... তবে এটি গল্প নয়।
আমি যে কাজটি থামিয়ে দিয়েছি সেখান থেকে আবার শুরু করতে পারি?
আমি একটি করছিলাম: tar -cvf
এবং আমাকে এটি দিয়ে হত্যা করতে হয়েছিল ctrl-C
। আমি জানি আমার একটি করা উচিত ছিল Ctrl-Z
এবং তারপরে টাস্কটিকে অগ্রভাগে ফিরিয়ে আনতে হবে ... তবে এটি গল্প নয়।
আমি যে কাজটি থামিয়ে দিয়েছি সেখান থেকে আবার শুরু করতে পারি?
উত্তর:
এই পদ্ধতিটি আপনার টার সংরক্ষণাগারটি পুনরায় তৈরি করবে এবং সমাপ্ত অংশটি বিদ্যমান ফাইলে সংযোজন করবে। কোনও নেটওয়ার্ক সংযোগের জন্য ব্যাক আপ নিলে এটি কার্যকর হতে পারে। আপনার আইএনএফআইএলএস এর কোনও ডেটা পরিবর্তিত হলে আপনি সম্ভবত কোনও দুর্নীতিগ্রস্থ সংরক্ষণাগার তৈরির ফলস্বরূপ ঘটবেন। সম্পূর্ণ হওয়ার পরে আপনার সংরক্ষণাগারটি পরীক্ষা করার বিষয়ে নিশ্চিত হন।
নিম্নলিখিত লাইনের সঠিক নাম থেকে INFILES এবং OUTFILE পরিবর্তন করুন।
INFILES="my folder"; OUTFILE="archive.tgz"; SIZE="$(wc -c < $OUTFILE)"; tar -cz --to-stdout "$INFILES" | tail -c +$(($SIZE+1)) >> "$OUTFILE"
ব্যাখ্যা:
SIZE="$(wc -c < $OUTFILE)"
# সংরক্ষণাগারটির বর্তমান আকার পান।
tar -cz --to-stdout "$INFILES" |
# সংরক্ষণাগার তৈরি করা শুরু করুন এবং tail
কমান্ডে আউটপুট প্রেরণ করুন ।
tail -c +$(($SIZE+1)) >>
# ZE SIZE + 1 এর আগে ডেটা উপেক্ষা করুন এবং সংরক্ষণাগারটির বাকি অংশটি আবার শুরু করুন UT আউটফিল।
সর্বোত্তম সমাধানটি হ'ল টার ফাইলটি মুছে ফেলা এবং পুনরায় চাপানো nohup
এবং সংযুক্ত প্রক্রিয়াটি পুনরায় চালু করা &
। বিকল্পভাবে, আপনি চালাতে tar -tfv
পারেন এবং এটিটিকে নতুন হিসাবে বাদ দিয়ে ব্যবহার করতে পারেন tar -cvf
।
tar -cvf
বিদ্যমান ফাইলটি ওভাররাইট করবে। মানে tar -rvf
? এছাড়াও, সংরক্ষণাগারে লেখা শেষ ফাইলটি অসম্পূর্ণ ছিল।
tar -rvf
?
আমি এই ক্ষেত্রে যা করি tar
, আমার একটি অসম্পূর্ণ সংরক্ষণাগার রয়েছে, আমি সংরক্ষণাগারে ফাইলগুলির একটি তালিকা তৈরি করি:
tar tf archive.tar | sed -e '/\/$/d' -e x -e '/^$/d' >files-done
sed
এই ডিরেক্টরি, না ফাইল, এবং আমরা ডিরেক্টরি আবার ডাম্প এবং শুধুমাত্র ঐ ডিরেক্টরিগুলি থেকে ঐ ফাইল লাফালাফি, প্রথম টার আর্কাইভ আগে থেকেই আছে আমরা চাই: COMMAND সমস্ত লাইন, একটি trailing স্ল্যাশ আছে মুছে ফেলা হবে। তদতিরিক্ত, আমরা sed
শেষ ফাইলের নামটি মুছতে পারি , কারণ এটি সম্ভবত আংশিকভাবে ফেলে দেওয়া হয়েছে, তাই আমরা এটি আবার সংরক্ষণাগারভুক্ত করব।
তারপরে files-done
তালিকাটি -X বিকল্পের মাধ্যমে একটি নতুন tar
কমান্ডে পাস করুন :
tar cfvX archive2.tar files-done SOURCEDIR
নতুন টার কমান্ডে একটি ভিন্ন আউটপুট ফাইলের নাম ব্যবহার করা নিশ্চিত করুন বা আপনি আপনার আংশিক সংরক্ষণাগারটি ওভাররাইট করে দেবেন। দূষিত টার আর্কাইভটিতে সরাসরি যুক্ত করার চেষ্টা করবেন না।