كيفية التقاط أفضل وسجل الناتج اللجنة الدائمة؟

StackOverflow https://stackoverflow.com/questions/202432

  •  03-07-2019
  •  | 
  •  

سؤال

واني اسعى الى التقاط الإخراج من برنامج نصي تثبيت (التي تستخدم اللجنة الدائمة) وتسجيل ذلك. ومع ذلك، أنا لا تحصل على كل ما الدائمة وطبع، وهي شريط التقدم.

والإخراج الشاشة:

<اقتباس فقرة>   

ونسخ   / USER2 / CBD / يبني / تمة / ضد التعذيب / myfiles / * ل   الخادم / المستخدمين / myfiles كما CDB

     

وكلمة المرور المصرف @ الخادم:   MYFILE 100٪ | ***************************** | 2503 00:00

وإخراج سجل:

<اقتباس فقرة>   

ونسخ   / USER2 / CBD / يبني / تمة / ضد التعذيب / myfiles / * ل   الخادم / المستخدمين / myfiles كما CDB

وأود حقا أن نعرف أن ملفي حصلت هناك. وهنا ما أحاول الآن من دون جدوى:

<اقتباس فقرة>   

وmyscript.sh 2> & 1 | كوم mylogfile.log

هل لديها وسيلة جيدة لالتقاط إخراج اللجنة الدائمة وتسجيل ذلك؟

وشكرا.

هل كانت مفيدة؟

المحلول

ويبدو الخاص بك فقط في عداد المفقودين سواء كان اللجنة الدائمة ناجحة أم لا من السجل.

وانا التخمين شريط التمرير لا الطباعة إلى المعياري ويستخدم سأركع او اي نوع آخر من TUI؟

هل يمكن أن مجرد إلقاء نظرة على قيمة العائد من اللجنة الدائمة لمعرفة ما إذا كان ناجحا. مثل

scp myfile user@host.com:. && echo success!

ويقول man scp

scp exits with 0 on success or >0 if an error occurred.

نصائح أخرى

واللجنة الدائمة طباعة شريط التقدم لمحطة باستخدام رموز التحكم. وسوف تكتشف إذا كنت إعادة توجيه الإخراج، وبالتالي حذف شريط التقدم.

ويمكنك الحصول على حول ذلك عن طريق خداع اللجنة الدائمة في التفكير تشغيله في محطة باستخدام "سيناريو" القيادة التي يتم تثبيتها على معظم توزيعات بشكل افتراضي:

script -q -c "scp server:/file /tmp/" > /tmp/test.txt

ومحتوى TEST.TXT سيكون:

file    0%    0     0.0KB/s   --:-- ETA
file   18%   11MB  11.2MB/s   00:04 ETA
file   36%   22MB  11.2MB/s   00:03 ETA
file   54%   34MB  11.2MB/s   00:02 ETA
file   73%   45MB  11.2MB/s   00:01 ETA
file   91%   56MB  11.2MB/s   00:00 ETA
file  100%   61MB  10.2MB/s   00:06

... الذي هو على الارجح ما تريد.

وأنا تعثرت على هذه المشكلة في حين أن إعادة توجيه إخراج برنامج نصي تفاعلية في ملف السجل. عدم وجود نتائج في سجل ليست مشكلة كما يمكنك تقييم دائما رموز الإنهاء. ولكن أردت حقا المستخدم التفاعلي لرؤية شريط التقدم. هذا الجواب يحل المشاكل على حد سواء.

وربما يمكنك استخدام " النصي "لتسجيل جلسة عمل المحطة الطرفية.

scp myfile user@host.com:. && echo success! 

وأمر مفيد للغاية ولكن لكتابة رسالة إلى ملف سجل I تغييره مثل هذا

scp myfile user@host.com:. && echo myfile successfully copied! >> logfile 2>&1

وهذا سوف نكتب "MYFILE نسخ بنجاح!" رسالة إلى ملف السجل.

وجرب:

scp server:/file /tmp/ > /dev/tty

لا أستطيع التعليق بعد :( لذلك سأضيف تحديثا هنا ...

كان

وMartin الحل الأفضل بالنسبة لي ولكن إذا قيادة اللجنة الدائمة الخاص بك هو في منتصف الطريق من خلال البرنامج النصي الخاص بك، ثم انها الانتاج <م> قد تظهر بعد الأوامر التي شغلت في الواقع بعد ذلك.

وأعتقد أن هذا هو لأن النصي يجب تشغيل الأمر في المستوى الفرعي لكنني لم الاختبار.

وتحرير: فإنه في الواقع تفرخ قذيفة حتى إذا كنت تحتاج الأمور إلى تشغيل (والواقع تفشل) بطريقة متسلسلة (كما هو الحال في السيناريو بناء) ثم عملتم لإضافة بعض المنطق حول استخدام الأمر النصي.

وأي بمعنى.

والنصي -q -C "القيادة الخاصة بك" && النوم 1

وأو شيئا من هذا القبيل بحيث الدك ينتظر قذيفة قذيفة الطفل لإنهاء قبل الانتقال.

نعم أنا مؤخرا كان يحاول الحصول على إخراج ضمن برنامج نصي بى من proc_open () لقد فقدت وقت هادئ تحاول الحصول على إخراج :-) ولكن في وقت متأخر قليلا هنا وأنا ثم قراءة هذا المنصب هنا جعلني أدرك أنني لا تحتاج هذا الإخراج المدمن على مخطوطتي حقا

وفقط سوف رمز إنهاء قيام بهذه المهمة: -)

و$ exit_code = proc_close (عملية $)؛

$ grep -r "Error" xyz.out > abc.txt

وهنا في الأمر أعلاه أنا تخزين الانتاج في abc.txt الملف.

وهذا الأمر grep هو للبحث containg النص <م> خطأ في ملف <م> xyz.out وتخزين الناتج في abc.txt دون عرض على وحدة التحكم .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top