নেটওয়ার্ক সংযোগে ওএস এক্স 10.6 এ স্ক্রিপ্ট চালান। (যেমন /etc/network/if-up.d/)


17

কোনও নেটওয়ার্ক ইন্টারফেস যখন ম্যাক ওএস এক্সে আসে তখন স্ক্রিপ্ট চালানোর কোনও উপায় আছে কি?

আমি আইপি-আপ নামের একটি স্ক্রিপ্ট / ইত্যাদি / পিপিপি-তে রাখার চেষ্টা করেছি কিন্তু আমি যখন একটি ওয়্যারলেস নেটওয়ার্ক সংযোগ বিচ্ছিন্ন করে পুনরায় সংযোগ করব তখন এটি জ্বলবে বলে মনে হয় না।

নেটওয়ার্কের অবস্থা পরিবর্তন হয়েছে কি না তা ক্রমাগত পরীক্ষা করতে আমি ক্রোন জব চালাতে না চাই। কিছু লিনাক্স ডিস্ট্রোজে আপনি /etc/network/if-up.d/ এ একটি স্ক্রিপ্ট রেখে এটি সম্পাদন করতে পারেন। ম্যাক ওএস এক্স এর মতো কিছু আছে কি?

উত্তর:


5

আপনি মার্কোপোলো বা এর ওয়েবসাইটে তালিকাভুক্ত অনুরূপ একটি ইউটিলিটি চেষ্টা করতে পারেন । আপনি যদি সংখ্যালঘু হন তবে লোকেশন চেঞ্জার প্রতিশ্রুতিবদ্ধ দেখায়।


1
আমি অতিরিক্ত প্রোগ্রাম ইনস্টল না করে এটি করতে পছন্দ করব। তবে লোকেশন চেঞ্জার লিঙ্কটি খুব কার্যকর ছিল কারণ এটি একটি নেটওয়ার্ক পরিবর্তনে প্রোগ্রাম চালানোর জন্য একটি চালু করা কনফিগারেশন অন্তর্ভুক্ত করে।
Zxaos

1
জেক্সাওস: অবশ্যই, এজন্যই আমি এটি অন্তর্ভুক্ত করেছি। এটি মূলত আপনি যা চান তার জন্য একটি লঞ্চ / বাশ স্ক্রিপ্ট টেম্পলেট। নিজেকে বয়লারপ্লেট কোড লেখার হাত থেকে বাঁচায়।
ড্যানিয়েল বেক

যদি আমি আপনাকে এই অতি-প্রাসঙ্গিক q ( superuser.com/questions/265861 ) দেখার জন্য বিরক্ত করতে পারি তবে আমি এটির অনেক প্রশংসা করব (কীভাবে ওএসএক্সের কমান্ড লাইন থেকে ভিপিএন শুরু এবং বন্ধ করতে হবে)। অনুরোধ করা ক্ষমা করবেন, আমি নির্বিশেষে কয়েক ঘন্টার মধ্যে এই মন্তব্যটি মুছব। যে কোনও ক্ষেত্রে ধন্যবাদ!
ড্যান রোজনস্টার্ক

1
@ ইয়ার কোনও সমস্যা নয়, তবে এখনই মধ্য ইউরোপের মধ্যরাত পেরিয়ে গেছে, সুতরাং দয়া করে আমাকে আবার শ্বাস দেওয়ার আগে আধ দিন বা আরও অপেক্ষা করুন (এবং এর মধ্যে যদি কিছু না আসে তবে দয়া করে এটি একটি আকর্ষণীয় প্রশ্ন)।
ড্যানিয়েল বেক

ধন্যবাদ @ ড্যানিয়েল বেক আপনি সম্ভবত ইতিমধ্যে দেখেছেন, অ্যাপ্লিকেশন ব্যবহার উত্তর ছিল। এটি সম্ভবত ওএসএক্সের অনেকগুলি বিষয়, তবে আমি প্রায়শই এটি ভুলে যাই।
ড্যান রোজনস্টার্ক 13

19

একটি লঞ্চ করা এজেন্ট দেখছে /etc/resolv.conf, এবং এর অধীনে দুটি নেটওয়ার্ক সম্পর্কিত .plist ফাইলগুলি /Library/Preferences/SystemConfiguration/আমার জন্য কাজ করছে বলে মনে হচ্ছে (ম্যাক ওএস এক্স 10.8.4 এ):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" \
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>ifup.ddns</string>

  <key>LowPriorityIO</key>
  <true/>

  <key>ProgramArguments</key>
  <array>
    <string>/Users/Shared/bin/ddns-update.sh</string>
  </array>

  <key>WatchPaths</key>
  <array>
    <string>/etc/resolv.conf</string>
    <string>/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist</string>
    <string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string>
  </array>

  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

আমি এর আগে কেবলমাত্র /etc/resolv.conf ব্যবহার করেছি তবে এমন ঘটনাও ছিল যেখানে যথেষ্ট ছিল না।


এটি আমার পক্ষে খুব সহায়ক ছিল, তবে একটি ত্রুটি আছে ([এই উত্তর] [১] দ্বারা পাওয়া গেছে): শুরুর <plist version="1.0">ট্যাগটি অনুপস্থিত। [1] [ আপেল.স্ট্যাকেক্সেঞ্জিং.com
a

@ পেট্রিক্স (এবং লিবারালআর্টিস্ট): সংশোধন করার জন্য ধন্যবাদ। আমি লক্ষ্য করিনি, কারণ এটি আমার জন্য কাজ করেছিল 10.8.5। আমার ধারণা পরবর্তী সংস্করণগুলি আরও কঠোর।
mivk

@mivk এই SystemConfigurationফাইলগুলিতে ঠিক কী পরিবর্তন হওয়ার কথা ? যদি আমি একটি নেটওয়ার্ক কেবল কেবল প্লাগ / আনপ্লাগ করি তবে কিছুতেই কোনও পরিবর্তন হবে বলে মনে হচ্ছে না
আইসফায়ার

এটি কাছাকাছি মনে হচ্ছে, তবে আমি যদি ওয়াইফাইটি বন্ধ এবং ফিরে চালু করি, তবে প্রোগ্রামটি কেবল তখনই সংযোগ বিচ্ছিন্ন হয় যখন নেটওয়ার্কটি সংযোগ বিচ্ছিন্ন হয় when আমি দেখতে পাচ্ছি যে /etc/resolv.confফাইলটি মুছে ফেলা হয়েছে এবং আমার ওয়াইফাই রাষ্ট্রটি পরিবর্তিত হলে পুনরায় সংযুক্ত করা হবে, সুতরাং কেন এটি কেবল সংযোগ বিচ্ছিন্ন হয়ে চলছে তা আমি নিশ্চিত নই।
ম্যাট হাগিনস

5

আপনার ক্র্যাঙ্কড ব্যবহার করে বিবেচনা করা উচিত , যা নেটওয়ার্ক সিস্টেম পরিবর্তন, ফাইল সিস্টেম ক্রিয়াকলাপ, অ্যাপ্লিকেশন প্রবর্তন ইত্যাদির মতো অনেক সিস্টেম ইভেন্টের প্রতিক্রিয়া হিসাবে আপনাকে অবশ্যই স্ক্রিপ্টগুলি চালানোর অনুমতি দেয়

আমি কোনও বুদ্ধিমান ডকুমেন্টেশন না পেয়ে, ক্র্যাঙ্কড ব্যবহার শুরু করার জন্য একটি ছোট ব্লগ পোস্টও লিখেছিলাম


আপনার ব্লগ বেনামে পড়া থেকে সুরক্ষিত। অনুগ্রহ করে এখানে কন্টেন্ট সদৃশ বিবেচনা করুন।
nfirvine

এর জন্যে দুঃখিত. আমার ব্লগ সরানো হয়েছে, তাই আমি স্রেফ url আপডেট করেছি। উত্তরটি সম্পাদনা করতে নির্দ্বিধায় যদি আপনি মনে করেন যে আমার পোস্ট থেকে কিছু তথ্য এই উত্তরে স্থানান্তরিত হতে পারে।
জুয়ান এ নাভারো

4

এটি ব্যাশে কাজ করছে বলে মনে হচ্ছে:

(echo -e "n.add State:/Network/Global/IPv4\nn.watch" & cat) | \
 scutil | \
 awk '/notification/ {system("echo change")}'

echo changeআপনার কমান্ডের সাথে যদি আপনার কোনও আদেশের উদ্ধৃতি দেওয়ার প্রয়োজন হয় তবে আপনার কমান্ডটি প্রতিস্থাপন করুন '\'':

(echo -e "n.add State:/Network/Global/IPv4\nn.watch" & cat) | \
 scutil | \
 awk '/notification/ {system("echo '\''&'\''")}'

3

কন্ট্রোলপ্লেন: "প্রসঙ্গ সংবেদনশীল কম্পিউটিং"

কন্ট্রোলপ্লেইন মার্কোপোলোর একটি সরাসরি বন্দর এবং সত্যই, মার্কোপোলো থেকে প্রাপ্ত কনফিগারেশনের বেশিরভাগটি এখনও কন্ট্রোলপ্লেনের সাথে কাজ করে, আরও ভাল! কন্ট্রোলপ্লেন স্নো লেপার্ড এবং উচ্চতর চলমান 32 এবং 64 বিট ইন্টেল ভিত্তিক ম্যাকগুলিকে সমর্থন করে।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


2

আরম্ভের সাথে শুরু করুন। আপনি এটি ব্যবহার করে অনুরূপ কার্যকারিতা করতে সক্ষম হতে পারে।

সম্পাদনা : 9 বছর পরে, সম্ভবত না। এই উইকিপিডিয়া এন্ট্রি অনুসারে :

২০১৪ সালে, ওএস এক্স 10.10 এবং আইওএস 8 এর সাহায্যে অ্যাপল প্রবর্তিত কোডটি বন্ধ উত্স libxpc এ চালু করা হয়েছে


চালু হ'ল মনে হচ্ছে এটি সঠিক দিকের একটি পদক্ষেপ, বিশেষত যদি আমি বুঝতে পারি যে অন্যান্য প্রোগ্রামগুলি কীভাবে নেটওয়ার্কের পরিবর্তনগুলি সনাক্ত করতে এটি ব্যবহার করে।
Zxaos

@Zxaos, launchd বলে মনে হয় সঠিক পথে একটি পদক্ষেপ মত, কিন্তু এটি নেটওয়ার্ক পরিবর্তন সনাক্ত করতে কোন নির্ভরযোগ্য উপায়। পরিবর্তে ক্র্যাঙ্কড ব্যবহার করে সমাধানের জন্য আমার উত্তর দেখুন ।
জুয়ান এ নাভারো

URL টি 404 পৃষ্ঠার দিকে নিয়ে যায়।
স্লেভেন রেজিক

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