سؤال

أنا أحاول الاستيلاء على جميع البيانات (النص) القادم من عنوان URL الذي يرسل نصيا باستمرار، حاولت استخدام PHP ولكن هذا يعني وجود البرنامج النصي يعمل طوال الوقت الذي لا يتم إجراؤه بالفعل (أعتقد). لذلك انتهى بي الأمر باستخدام برنامج نصي باش.

في الوقت الحالي، استخدم WGET (لم أستطع الحصول على حليقة لإخراج النص إلى ملف)

wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt

يبدو أن WGET تعمل بشكل جيد، بصرف النظر عن شيء واحد، في كل مرة أعيد فيها إعادة تشغيل البرنامج النصي سيقوم بمسح ملف الإخراج .TXT والبدء في ملء ذلك مرة أخرى، وهو ما أريده. هل هناك طريقة لمعرفة ما يصل إلى إلحاق ملف TXT؟

أيضا، هل هذه هي أفضل طريقة لالتقاط دفق البيانات الحية؟ يجب أن أستخدم لغة مختلفة مثل بيثون أو ...؟

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

المحلول

يمكنك ان تفعل wget --tries=0 --retry-connrefused $URL -O - >> output.txt.

Explanation: المعلمات -O هو اختصار ل --output-document, واندفاعة - يعني الناتج القياسي.

الخط command > file يعني الكتابة "كتابة إخراج command ل file"، و command >> file يعني "ألحق مخرج ل command ل file"ما الذي تريده.

نصائح أخرى

لا يتبع Curl إعادة التوجيه افتراضيا ويخرج أي شيء إذا كان هناك إعادة توجيه. أنا دائما حدد --location الخيار فقط في حالة. إذا كنت ترغب في استخدام curl, ، يحاول:

curl http://example.com --location --silent >> output.txt

ال --silent خيار ينطفئ مؤشر التقدم.

يمكنك تجربة هذا:

احيانا صحيح
فعل
WGET -Q -O - http://example.com. >> اسم الملف # - مخرجات إلى الشاشة
النوم 2 # النوم 2 ثانية
منجز

لفة http: // عنوان URL / >> الإخراج.txt.

يعيد توجيه الإخراج من Curl إلى الإخراج. إلحال، إلحاق بأي بيانات موجودة بالفعل. (إذا كان فقط> إخراج.txt - من شأنه الكتابة فوق محتويات الإخراج. كل مرة في كل مرة ركض فيها).

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