যখন ত্রুটি 502 হওয়া বন্ধ হয় কেবল তখনই কীভাবে ব্রাউজার পৃষ্ঠায় সাফারি শুরু করবেন?


3

আমি একটি পরিস্থিতি পেয়েছি যেখানে আমি ওয়েবে কোনও উদাহরণে কোনও আপডেট ধাক্কা দিলে, এটি সংকলন করতে 3-5 মিনিট সময় লাগবে, যখন সেই সংকলনটি সফলভাবে শেষ হয়ে যাবে, উদাহরণটি কয়েক মিনিট আগে ত্রুটি 502 অঙ্কুরিত করবে আবার দৌড়াতে শুরু করবে।

আমি এমন একটি সমাধান খুঁজছি যেখানে, প্রতি 5 সেকেন্ড বা তারপরে উদাহরণটি (সার্ভারের ইউআরএল) অনুসন্ধান করা হবে এবং যখন এটি 502 এর উত্তর দেওয়া বন্ধ করে দেয় , সাফারি বুট আপ হয়ে যায়।

কোন ধারণা আমি কীভাবে এটি করতে পারি? এখনও অবধি, টার্মিনালে, আমি এটি চালাতে পারি:

curl -I http://url 2>/dev/null | head -n 1 | cut -d$' ' -f2

এবং এটি এইচটিটিপি পোর্ট প্রতিক্রিয়া বা যা কিছু আউটপুট দেবে, তবে আমি "প্রতি 5 সেকেন্ডে এটি করতে" বা "যদি (ফলস্বরূপ প্রতিক্রিয়া) এক্স হয় তবে, লুপটির পুনরাবৃত্তি চালিয়ে যান, তবে যদি (ফলস্বরূপ প্রতিক্রিয়া) হয় তবে আমি যথেষ্ট সচেতন নই Y, তারপরে একটি URL দিয়ে সাফারি চালু করুন "।

কোন ধারনা?

উত্তর:


3

আপনি যা করতে চাইছেন তা সম্পাদন করার জন্য একটি "দ্রুত এবং নোংরা" স্ক্রিপ্ট হিসাবে লিখিত হতে পারে:

#!/bin/bash

url = "http://url"
code=`curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2`

while [ "$code" == 502 ]
do
  sleep 5
  echo trying again
  code=`curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2`
done

open -a Safari $url

মূলত, এটি কী জন্য মান একটি পরিবর্তনশীল আপনি আউটপুট নামক ক্যাপচার হয় code। এরপরে মানটি পরিবর্তন না হওয়া পর্যন্ত প্রতি 5 সেকেন্ডের মধ্যে / ডু লুপে সেই পরিবর্তনশীলটি মূল্যায়ন করে। একবার এটি হয়ে গেলে এটি লুপটি উপস্থিত থাকে এবং একটি সাফারি দৃষ্টান্তটি ইউআরএলকে নির্দেশ করে laun


বেশিরভাগ সমস্যা সমাধানের জন্য ধন্যবাদ - এটি ভবিষ্যতে আমাকে সহায়তা করার জন্য যথেষ্ট ভাল। অবশ্যই, এটি যাওয়ার কোনও উপায় নেই "ঠিক আছে এটি ঠিক আছে তবে পরের 3 মিনিটের জন্য পূর্ববর্তী বিল্ডের সাথে, তাই পিংগিং রাখুন, ঠিক আছে, এখন এটি 502 গুলি করে, ঠিক আছে, পিংগিং চালিয়ে যান .. এবং এখন এটি আবার লোড হয়, সুতরাং বুট আপ করুন ইউআরএল সহ সাফারি "। @Allan এর বিষয়ে কোনও ধারণা?
এসারুহো

1
যদি এটি ক্রমাগতভাবে চলার কথা মনে হয়, আপনার এটি পটভূমিতে চালানো এবং তা অস্বীকার করা উচিত। কমান্ডটি জারি করে এটি সম্পাদন করুন: script.sh & disown (স্ক্রিপ্ট.শ স্ক্রিপ্টের নাম)। আপনাকে লুপটি পরিবর্তন করতে হবে যাতে এটি কখনই শেষ হয় না তবে 200 এর কোডের জন্য একটি চেক (যদি / তারপর) যোগ করবে যা সাফারি কল করবে। আপনি যদি প্রতি 30 মিনিটের মধ্যে এটি চালাতে চান উদাহরণস্বরূপ (সম্ভবত আরও ভাল), এটি cron(লিনাক্স / বিএসডি / ইউনিক্স) বা launchdম্যাকের সাথে যুক্ত করুন।
অ্যালান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.