ক্রোনে উইজেট আউটপুট পাইপ করা / দেব / নাল


38

আমি ফিউশন প্যাসেঞ্জারকে বাঁচিয়ে রাখার জন্য আমার ক্রোনটবে প্রতি 5 মিনিটে নিম্নলিখিত কমান্ডটি চালাচ্ছি।

*/5 * * * * wget mysite.com > /dev/null 2>&1

যখন আমি এটি চালনা করি এটি সাইটের url STDOUT / STDERR থেকে / dev / নাল পর্যন্ত একটি উইজেট সম্পাদন করে। যখন আমি কমান্ড লাইন থেকে এটি চালিত করি এটি ভাল কাজ করে এবং আমার হোম ডিরেক্টরিতে একটি সূচি। Html ফাইল উত্পাদন করে না।

যখন এটি ক্রোন থেকে চলে, তখন এটি প্রতি পাঁচ মিনিটে একটি নতুন সূচক। Html ফাইল তৈরি করে, আমাকে এক টন সূচক ফাইল রেখে দেয় যা আমি চাই না।

আমার সিনট্যাক্সটি ক্রোন জব চালানোর জন্য ভুল? একটি কমান্ড লাইন থেকে এটি কোনও সমস্যা ছাড়াই কাজ করে তবে ক্রোন থেকে এটি আমার হোম ডিরেক্টরিতে একটি সূচক। Html ফাইল উত্পন্ন করে।

আমি নিশ্চিত যে আমি একটি সাধারণ ভুল করছি, যদি কেউ সাহায্য করতে পারে তবে এটির প্রশংসা করব।


1
আর একটি প্রশ্ন হ'ল আপনি যখন কমান্ড লাইন থেকে হাত ধরে চালিত হন তখন এটি কোনও ফাইল তৈরি করে না কেন। আমি ডকুমেন্টেশন থেকে যতদূর বলতে পারি, wgetটার্মিনাল থেকে চালানো এবং অন্যথায় অগ্রগতি বার প্রদর্শিত হয় কিনা তা কেবলমাত্র পার্থক্য ।
বার্মার

উত্তর:


61

আপনি এটি এইভাবে করতে পারে:

*/5 * * * * wget -O /dev/null -o /dev/null example.com

এখানে -Oডাউনলোড করা ফাইলটি প্রেরণ করা হয় /dev/nullএবং stderr এর পরিবর্তে -oলগ করা /dev/nullহয়। সেভাবে পুনঃনির্দেশের প্রয়োজন হয় না।


1
ধন্যবাদ, এটি STDERR / STDOUT এ পুনর্নির্দেশের চেয়ে আরও বেশি সরাসরি। আমি এটিকে সমর্থন করি.
নলটেক

17

আপনার আসলে সামগ্রীগুলি ডাউনলোড করতে হবে বা কেবল 200 টি ঠিক আছে? আপনার যদি কেবল সার্ভারের অনুরোধটি প্রক্রিয়া করতে হয়, তবে কেবল --spiderযুক্তিটি ব্যবহার করবেন না কেন ?


এটি একটি ভাল চিন্তা। আমার সত্যিই কেবল 200 ওকে সাড়া দরকার।
নালটেক

আমি আশা করছিলাম নিরপেক্ষ যে কেউ এটি চিহ্নিত করবে, কিন্তু ... আপনি কোন সমাধানটি ব্যবহার করে শেষ করেছেন? আমার উত্তরটি এটি করার জন্য সত্যই সঠিক উপায় :)
নচট - মনিকা

10

আমি নিম্নলিখিত ব্যবহার করবে:

/5 * * * * wget -O - mysite.com > /dev/null 2>&1

-O -বিকল্প নিশ্চিত করুন যে সংগৃহীত বিষয়বস্তু stdout- এ পাঠাতে হয়।


4
নোট যে foo > /dev/null 2>&1আরও সংক্ষিপ্তভাবে হিসাবে লেখা হয় foo &> /dev/null
amalloy

3
@amalloy শুধু মধ্যে bash। ইন sh, যা সাধারণত ক্রোন ব্যবহার করে, অ্যাম্পারস্যান্ড পুনর্নির্দেশ কাজ করে না।
সোভেরিও

5

আপনি বলছেন আপনার একটি মন্তব্যে কেবল "200 ওকে" প্রতিক্রিয়া দরকার।

এটি এর সাথে কিছু অতিরিক্ত সুবিধা সহ সমাধানের অনুমতি দেয়
wget -O /dev/null -o /dev/null example.com। ধারণাটি কোনও উপায়ে আউটপুটটি ফেলে দেওয়া নয়, তবে কোনও আউটপুট তৈরি করবেন না।

আপনার কেবলমাত্র প্রতিক্রিয়া দরকার তা হ'ল স্থানীয় ফাইল ইনডেক্স html এ ডাউনলোড করা ডেটা প্রথম স্থানে ডাউনলোড করার দরকার নেই।
এইচটিটিপি প্রোটোকলে, ডকুমেন্ট ডাউনলোড করতে 'জিইটি' কমান্ড ব্যবহার করা হয় । একটি উপায় যে সবকিছু একটি দস্তাবেজ অ্যাক্সেস করতে ব্যতীত আসলে ডকুমেন্ট ডাউনলোড, সেখানে একটি বিশেষ কমান্ড 'মাথা'।
এই কাজের জন্য 'জিইটি' ব্যবহার করার সময় নথিটি স্থানীয়ভাবে ডাউনলোড এবং বাতিল করা হয়। 'হেড' ব্যবহার করে আপনার যা প্রয়োজন ঠিক তা করে, এটি ডকুমেন্টটিকে প্রথম স্থানে স্থানান্তর করে না। এটি সর্বদা সংজ্ঞা অনুসারে 'জিইটি' এর মতো একই ফলাফলের কোডটি ফেরত দেবে।

সিনট্যাক্স পদ্ধতি ব্যবহার করতে HEADদিয়ে wgetএকটু বিজোড়: আমরা বিকল্পটি ব্যবহার করতে হবে --spider। এই প্রসঙ্গে, এটি কেবল আমাদের যা ইচ্ছা তা করে - 'GET' এর পরিবর্তে 'হেড' দিয়ে ইউআরএল অ্যাক্সেস করে। এটি কী করে সে সম্পর্কে আউটপুট বিবরণ না দেওয়ার জন্য
আমরা বিকল্পটি -q(শান্ত) ব্যবহার করতে wgetপারি।

এটির সংমিশ্রণ, wgetস্ট্যাডারকে কোনও আউটপুট দেয় না বা কোনও দস্তাবেজ সংরক্ষণ করে না।

wget -q --spider 'http://example.com/'

প্রস্থান কোডটি আমাদের জানায় যে অনুরোধটি সফল হয়েছিল কি না:

$ wget -q --spider 'http://example.com/'
$ echo $?
0
$ wget -q --spider 'http://example.com/nonexisting'
$ echo $?                                          
8

কমান্ডের জন্য crontab, উভয় ক্ষেত্রেই কোনও আউটপুট নেই এর অর্থ আপনি কোনও আউটপুট না পেয়ে আবারও ত্রুটির ইঙ্গিত হিসাবে ব্যবহার করতে পারবেন।

আপনার উদাহরণ কমান্ড এটি পরিবর্তন করা হবে:

*/5 * * * * wget -q --spider mysite.com

এটির মতো একই সুবিধা রয়েছে wget -O /dev/null -o /dev/null example.com। অতিরিক্ত সুবিধা হ'ল লগ আউটপুট এবং ডকুমেন্ট আউটপুট স্থানীয়ভাবে উত্পন্ন এবং বাতিল করার পরিবর্তে উত্পন্ন হয় না। অথবা কোর্স বড় পার্থক্য, ডাউনলোড এবং তারপর ডকুমেন্ট বাতিল করতে এড়ানো হয় index.html


আমি এই পদ্ধতিটিও পছন্দ করি। আমি আপনার প্রতিক্রিয়া এবং উত্তর প্রশংসা করি।
নালটেক

3

ফিউশন যাত্রী বাঁচিয়ে রাখতে

আপনার প্রশ্নটি এই সম্পর্কে হওয়া উচিত, ওয়েবপৃষ্ঠা বলে:

এর জন্য একটি দ্রুত এবং শক্তিশালী ওয়েব সার্ভার এবং অ্যাপ্লিকেশন সার্ভার

এর জন্য কোনও রক্ষণশীল স্ক্রিপ্টের প্রয়োজন হবে না।

অন্যথায় ক্যাস্পারডের দ্রবণটি নিখুঁত।


প্রতিক্রিয়াটির জন্য ধন্যবাদ, যদিও এটি খুব গঠনমূলক নয়। অ্যাপ্লিকেশন সার্ভারগুলি ব্যর্থ হয় - যদিও এটি সাধারণত ধারকটির দোষ হয় না।
ফেলিক্স ফ্র্যাঙ্ক

1
আমি সম্মত হই যে এটিকে বাঁচিয়ে রাখার জন্য কোনও ক্রাউনজব প্রয়োজন হবে না। আমি যখন এনগিনেক্স / প্যাসেঞ্জার টিউনিংয়ের গবেষণা করছিলাম তখন এটি দ্রুত সমাধান ছিল। সত্যিই কেবল / dev / নাল থেকে আউটপুট দেওয়ার সর্বোত্তম উপায়টি সন্ধান করছিল। আমার যাত্রী ব্যর্থ হয়েছে বা এমন কোনও সময় 2 মিনিটের জন্য ঝুলিয়ে রাখা হয়েছে যখন কোনও বোঝা নেই, তাই ইউআরএলটির অনুরোধ করা যাত্রীদের আপাতত বহিষ্কার করে রাখে।
নালটেক

1
এটি বোঝা ভাল হবে, এটি কী তা হ'ল wgetআদেশ দ্বারা জীবিত রাখা হচ্ছে । অনেক পরিস্থিতিতে জীবিত বার্তাগুলি রাখার প্রয়োজনীয়তা অন্তর্নিহিত ডিজাইনের ত্রুটির একটি লক্ষণ যা ঠিক করা উচিত। তবে এগুলির সবগুলি স্থির হয়ে গেলেও, এখনও কয়েকটি ঘটনা বাকী থাকবে যেখানে একটি জীবন্ত বার্তা রাখা সঠিক সমাধান। এমনকি জীবন্ত বার্তাগুলি রাখার প্রয়োজন না থাকলেও ক্রোন জব একটি তদারকি সেটআপের একটি দরকারী অংশ হতে পারে।
ক্যাস্পারড

এটি একটি মন্তব্যের চেয়ে উত্তরের চেয়ে ভাল হবে।
মোপেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.