শুধু MacOS এর সম্পর্কে মন্তব্য খেয়াল, এবং যখন আমি @akira (এবং PV) থেকে সমাধান মনে করি অনেক neater আমি আলকাতরা এবং এটি একটি SIGINFO সংকেত পাঠানোর সাথে আমার MacOS এর বাক্সে একটি দলা এবং একটি দ্রুত playaround তাড়া চাই। আনন্দের সাথে যথেষ্ট, এটি কাজ করেছে :) আপনি যদি BSD- এর মতো সিস্টেমে থাকেন তবে এটি কাজ করা উচিত তবে লিনাক্স বাক্সে আপনাকে একটি SIGUSR1 প্রেরণ করতে হবে এবং / অথবা tar
একইভাবে কাজ নাও করতে পারে।
নীচের দিকটি হ'ল এটি আপনাকে কেবলমাত্র একটি আউটপুট সরবরাহ করবে (স্টাডআউটে) বর্তমান ফাইলটি কতটা দূরে তা দেখায় যেহেতু আমি অনুমান করছি যে এটি কত বড় ডেটা স্ট্রিম পাচ্ছে সে সম্পর্কে কোনও ধারণা নেই।
সুতরাং হ্যাঁ, একটি বিকল্প উপায় হ'ল টার জ্বালিয়ে দেওয়া এবং পর্যায়ক্রমে এটি সাইন ইন করা পাঠানো যে কোনও সময় আপনি জানতে চেয়েছিলেন যে এটি কতদূর এগিয়েছে। কিভাবে এই কাজ করতে?
অ্যাড-হক, ম্যানুয়াল পদ্ধতি
আপনি যদি কোনও অ্যাড-হক ভিত্তিতে স্থিতি পরীক্ষা করতে সক্ষম হতে চান তবে আপনি control-T
প্রাসঙ্গিক উইন্ডোতে (ব্রায়ান সুইফ্ট উল্লিখিত হিসাবে) আঘাত করতে পারেন যা সাইন ইনফোকো সিগন্যালটি প্রেরণ করবে। এটির সাথে একটি সমস্যা হ'ল এটি আমার সম্পূর্ণ চেইনে প্রেরণ করবে যা আমি বিশ্বাস করি, তাই আপনি যদি করছেন:
% tar cvf - folder-with-big-files | bzip2 -c > big-files.tar.bz2
আপনি bzip2 এর প্রতিবেদনের সাথে তার স্ট্যাটাসের প্রতিবেদনটিও দেখতে পাবেন:
a folder-with-big-files/big-file.imgload 0.79 cmd: bzip2 13325 running
14 0.27u 1.02s
adding folder-with-big-files/big-file.imgload (17760256 / 32311520)
এটি আপনি দুর্দান্তভাবে কাজ করছেন যদি আপনি কেবল tar
এটি চালাচ্ছেন যে আপনি চালিয়ে যাচ্ছেন কিনা বা কেবল ধীর গতিতে পরীক্ষা করতে চান। এই ক্ষেত্রে ফর্ম্যাট করার বিষয়ে আপনার সম্ভবত খুব বেশি চিন্তা করার দরকার নেই, কারণ এটি কেবল একটি দ্রুত চেক ..
স্বয়ংক্রিয় পদ্ধতির সাজানোর
আপনি যদি জানেন যে এটি কিছুটা সময় নিতে চলেছে, তবে একটি অগ্রগতি সূচকের মতো কিছু চায় তবে তার বিকল্পটি হ'ল আপনার টার প্রক্রিয়াটি বন্ধ করে দেওয়া হবে এবং অন্য একটি টার্মিনালে এটি পিআইডি করা হবে এবং তারপরে এটিকে একটি স্ক্রিপ্টে ফেলে দেওয়া হবে যা বারবার বারবার একটি সংকেত প্রেরণ করে । উদাহরণস্বরূপ, আপনার যদি নিম্নলিখিত স্ক্রিপ্টলেট থাকে (এবং এটি বলুন হিসাবে আহবান করুন script.sh PID-to-signal interval-to-signal-at
):
#!/bin/sh
PID=$1
INTERVAL=$2
SIGNAL=29 # excuse the voodoo, bash gets the translation of SIGINFO,
# sh won't..
kill -0 $PID # invoke a quick check to see if the PID is present AND that
# you can access it..
echo "this process is $$, sending signal $SIGNAL to $PID every $INTERVAL s"
while [ $? -eq 0 ]; do
sleep $INTERVAL;
kill -$SIGNAL $PID; # The kill signalling must be the last statement
# or else the $? conditional test won't work
done
echo "PID $PID no longer accessible, tar finished?"
আপনি যদি এইভাবে প্রার্থনা করেন, যেহেতু আপনি কেবলমাত্র টার্গেট করছেন তবে tar
আপনি আরও বেশি এভাবে আউটপুট পাবেন
a folder-with-big-files/tinyfile.1
a folder-with-big-files/tinyfile.2
a folder-with-big-files/tinyfile.3
a folder-with-big-files/bigfile.1
adding folder-with-big-files/bigfile.1 (124612 / 94377241)
adding folder-with-big-files/bigfile.1 (723612 / 94377241)
...
যা আমি স্বীকার করি, দারুণ সুন্দর।
সর্বশেষে তবে সর্বনিম্ন নয় - আমার স্ক্রিপ্টিং কিছুটা মরিচা, সুতরাং যদি কেউ কোডটি সাফ করে / ঠিক করতে / কোডটি উন্নত করতে চায় তবে আপনার জীবন যাপন করুন :)