আমি আরএসআইএনসি আউটপুটটিকে এমনভাবে ফিল্টার / পুনঃনির্দেশ করার একটি উপায় খুঁজছি যেখানে এটি "ডায়ালগ - গেজ" কমান্ডকে খাওয়ানো যায়, তাই আমি ফাইল সিঙ্কের সময় একটি দুর্দান্ত চেহারা প্রগতিবার পেতে পারি। বর্তমানে আমি এটি কেবল প্রম্পটে সরাসরি পরীক্ষা করেছি, তবে আমি এটি (বাশ) শেল স্ক্রিপ্টে করার পরিকল্পনা করছি।
আমি ইন্টারনেট ঘুরে দেখেছি এবং বিট এবং টুকরো পেয়েছি, তবে এটি কার্যকর করার জন্য আমি এখনও কিছু মিস করছি
(অস্বীকৃতি: এটি একটি সম্পূর্ণ ভুল পদ্ধতির হতে পারে, এবং এটি একটি পুনর্নির্দেশ / পাইপিং মনস্ট্রোসিটি)
আমি বর্তমানে যা একসাথে রেখেছি:
rsync -avz --progress -e "ssh" user@server:/home/user/data/ /home/user/data | awk -f /home/user/rsync.awk | sed 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70
প্রথমে আমার কাছে প্রকট আরএসএনসি কমান্ডটি রয়েছে - প্রোগ্রেস বিকল্পের সাথে আরএসইএনসি থেকে আউটপুটটি বিশ্রী আকারে পাইপ করা হয় এবং ফলোং অ্যাজবি ফিল্টার ব্যবহার করে:
{
if (index($0, "to-check=") > 0)
{
split($0, pieces, "to-check=")
split(pieces[2], term, ")");
split(term[1], division, "/");
print (1-(division[1]/division[2]))*100
}
# else
# {
# print "#"$0;
# }
fflush();
}
এটি আরএসসিএন আউটপুট ফিল্টার করে এবং নিম্নলিখিত বিন্যাসে শতাংশ সরবরাহ করে:
53.7037
55.5556
57.4074
59.2593
61.1111
62.963
সুতরাং দশমিক সংখ্যাগুলি থেকে মুক্তি পাওয়ার জন্য, আউটপুটটি সিডে ফিড করি:
sed 's/\([0-9]*\).*/\1/'
যা নিম্নলিখিত ফলাফল দেয়:
64
66
68
70
72
74
75
77
এই সংখ্যাগুলি এভাবে ডায়লগে পাইপ করা হয়েছে:
dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70
যতদূর আমি জানি, "ডায়ালগ - গেজ" ইত্যাদি এটিকে গ্রহণ করা উচিত, তবে এটি হঠাৎ 100% না হওয়া পর্যন্ত 0% হওয়ার অগ্রগতি প্রদর্শন করে
এখানে কেউ আমাকে সঠিক দিকে নির্দেশ করতে পারে? আমি কি একটি কাজের অগ্রগতি থেকে অনেক দূরে? এটি অর্জনের জন্য আরও ভাল উপায় আছে কি?
শুভেচ্ছা সহ,
Christer
সম্পাদনা : @lynxlynxlynx 'উত্তরটি অ্যাকাউন্টে নেওয়ার পরে, সঠিক কমান্ড লাইনটি হ'ল:
rsync -avz --progress -e "ssh" user@server:/home/user/data/ /home/user/data \
| awk -f /home/user/rsync.awk \
| sed --unbuffered 's/([0-9]*).*/\1/' \
| dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70