নেটওয়ার্ক সংযোগের ধরণের উপর নির্ভর করে টাইম মেশিনটি সক্ষম / অক্ষম করুন


9

আমি এখানে বাড়িতে দুর্দান্ত ওয়াই-ফাই সেটআপ পাইনি এবং এটি কখনও কখনও টাইম মেশিন ব্যর্থ হয়ে যায়। সেখানে নির্দিষ্ট করার কোনও উপায় আছে যে টাইম মেশিনটি নির্দিষ্ট পরিস্থিতিতে কেবলমাত্র ব্যাক আপ করে - যেমন ইথারনেট সংযোগ সক্রিয় ...?


নিজে হাতে সময় মেশিন চালানো একটি বিকল্প হতে পারে?
থরবজর্ন রাভন অ্যান্ডারসন

আমি নিজে থেকে 'ম্যানুয়ালি দৌড়ানো' অর্থ কী তা নিশ্চিত নই - এটি সক্ষম করা থাকলে এটি যে কোনওভাবে চলতে পারে, আদর্শভাবে নেটওয়ার্ক কনফিগারেশন অনুযায়ী আমার এটি চালু / বন্ধ করা দরকার।
ব্যাবেলমঙ্ক

স্ট্যাটাস বারের টাইম মেশিন আইকনটিতে ডান ক্লিক করার পরে একটি "এখন ব্যাকআপ" মেনু এন্ট্রি থাকে।
থরবজর্ন রাভন অ্যান্ডারসন

উত্তর:


6

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

পদক্ষেপ 1: সিস্টেম চেক

ইথারনেটের সাথে সংযুক্ত থাকাকালীন, কোন ইন্টারফেসটি ইথারনেটকে নির্ধারিত হয়েছে তা নিশ্চিত করার জন্য আপনাকে নিজে একটি কমান্ড চালাতে হবে run এই আদেশটি চালান:

ifconfig

এটি তথ্যে পূর্ণ একটি পর্দা আউটপুট করা উচিত। আপনি যা সন্ধান করছেন তা হ'ল একটি বিভাগ enযার পরে একটি সংখ্যার লেবেলযুক্ত এবং যার শেষ লাইনটি এটি status: active:

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
    ether 00:25:00:ef:30:3c 
    inet6 fe80::225:ff:feef:303c%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.68 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect (100baseTX <full-duplex>)
    status: active

enশুরুতে পাশের নোটটি নোট করুন - এটি এমন ইন্টারফেস যা আপনার ইথারনেট সংযোগটি চলছে।

পদক্ষেপ 2: অ্যাপলস্ক্রিপ্ট অ্যাপ্লিকেশন তৈরি করুন

নীচের স্ক্রিপ্টে, যেখানে এটি বলেছে set wired_interface to "0", উপরের আউটপুটে 0পরবর্তী সংখ্যায় পরিবর্তন করুন en। (এটি 0 হওয়া উচিত; আপনি যদি ম্যাক প্রোতে থাকেন তবে এটি 1 হতে পারে)) এছাড়াও নীচের স্ক্রিপ্টে, শীর্ষে যেখানে বলা হয়েছে myusername, আপনার নিজের ম্যাক ব্যবহারকারীনামকে বিকল্প দিন।

-- Edit variables here --
global current_username
set current_username to "myusername"
global wired_interface
set wired_interface to "0"

-- DO NOT EDIT BELOW THIS LINE --
global last_connection
set last_connection to "wireless"

on idle
    if (do shell script "ifconfig en" & wired_interface & " | awk '/inet/ {print $2}'") is not equal to "" then
        -- on ethernet
        if last_connection is equal to "wireless" then
            -- turn TM on
            -- else do nothing, we're still on ethernet
            set last_connection to "ethernet"
            do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_On.csh"
        end if
    else
        -- on wireless
        if last_connection is equal to "ethernet" then
            -- turn tm off
            -- else do nothing, we're still on wireless
            set last_connection to "wireless"
            do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_Off.csh"
        end if
    end if
    return 120
end idle

+ sসংরক্ষণ করতে। সম্পত্তি সংরক্ষণ পত্রকে, File Formatহিসাবে সেট করুন Applicationএবং এর জন্য বাক্সটি চেক করুন Stay open after run handler। ডেস্কটপ, বা অ্যাপ্লিকেশন ফোল্ডার - আপনার পছন্দ যেখানেই এটি সংরক্ষণ করুন - এটি সত্যিই কিছু যায় আসে না, কেবল কোথায় আপনি এটি সংরক্ষণ করেছেন তা জেনে নিন।

অ্যাপলস্ক্রিপ্ট এডিটর সেভ ডায়ালগ বক্সে ফাইল ফর্ম্যাটটি অ্যাপ্লিকেশনে সেট করা আছে এবং রান হ্যান্ডলারের পরে ওপেন থাকুন জন্য চেক করা আছে

পদক্ষেপ 3: শেল স্ক্রিপ্টস তৈরি করুন

এরপরে, টার্মিনাল খুলুন। নিম্নলিখিত আদেশগুলি টাইপ করুন:

cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh

নিম্নলিখিত লাইনটি এতে আটকান:

defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE

প্রেস control+ + x, টাইপ yএবং প্রেস returnসংরক্ষণ করতে করে প্রস্থান করুন। তারপরে এই কমান্ডটি চালান:

pico TM_Off.csh

এবং এই ফাইলটিতে নিম্নলিখিত লাইনটি পেস্ট করুন:

defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE

আবার, control+ x, তারপরে yএবং returnসংরক্ষণ এবং প্রস্থান করতে।

এরপরে, এই আদেশগুলি প্রবেশ করান:

chmod 4555 TM_O*.csh
chown root TM_O*.csh

পদক্ষেপ 4: sudoএকটি পাসওয়ার্ড ছাড়াই রান সেট আপ করা

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

টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করান:

sudo pico /etc/sudoers

তারপরে অনুরোধ করা হলে আপনার প্রশাসকের পাসওয়ার্ড লিখুন।

এটি আপনাকে (বেশিরভাগ) ফাঁকা স্ক্রিনে নিয়ে আসতে পারে বা এটিতে কিছু লেখা থাকতে পারে। যদি এটি ফাঁকা থাকে - ঠিক আছে। আপনি উপরে নীচের লাইনটি কেবল পেস্ট করবেন। যদি পাঠ্য ইতিমধ্যে বিদ্যমান থাকে তবে তাও ঠিক আছে; # User privilege specificationনিচের স্ক্রিনশটে যেমন দেখা গেছে, বিভাগে ইতিমধ্যে লাইনের ঠিক নীচে যেতে আপনার ডাউন তীরটি ব্যবহার করুন ।

টার্মিনাল স্ক্রিনশটটি পিকোতে খুলে ফেলা ফাইলগুলি দেখায় showing

এখানে, নিম্নলিখিত লাইন যুক্ত করুন:

<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*

উভয় জায়গায় যেখানে <yourusername>উপস্থিত হয়, এটি আপনার ম্যাক ব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন করুন। প্রেস control+ + x, টাইপ yএবং প্রেস returnসংরক্ষণ করতে করে প্রস্থান করুন।

এই ফাইলগুলি নিম্নলিখিত কমান্ডটি চালিয়ে টাইম মেশিনটি চালু এবং বন্ধ করে পরীক্ষা করুন (ধরে নিই যে টাইম মেশিন বর্তমানে চালু রয়েছে):

sudo ./TM_Off.csh

এক মুহুর্তের পরে মেনুবারের টাইম মেশিন আইকনটি ধূসর হয়ে উঠবে, নির্দেশক সময় মেশিনটি বন্ধ রয়েছে is (পরিবর্তনটি প্রতিবিম্বিত করতে আপনার আইকনটি ক্লিক করতে হতে পারে)। এই কাজটি ধরে নিয়ে, এই কমান্ডটি চালান:

sudo ./TM_On.csh

এবং টাইম মেশিনটি পুনরায় সক্ষম করা উচিত।

অ্যান্ড অফ ইউ গো

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


বাহ, এটি আশ্চর্যজনক - আমি এটি সন্ধান করা এবং আমার ফলাফলগুলি এখানে পেস্ট করতে নিশ্চিত হব - আমি এমনকি এটি গিটহাবের মধ্যে আটকে রাখতে পারি (অবশ্যই যথাযথ creditণের সাথে)!
ব্যাবেলমঙ্ক

এখানে একটি রেসের শর্ত রয়েছে: আপনি যখন ওয়াইফাইয়ের সাথে সংযুক্ত হন তখন আপনার কাছে একটি দুই মিনিটের উইন্ডো থাকে যাতে স্ক্রিপ্ট বিজ্ঞপ্তির আগে টিএম শুরু হয়ে যায় এবং এটিকে বন্ধ করে দেয়।
রিড

1
প্রতি 2 মিনিটে এটি ট্রিগার করার পরিবর্তে, যখনই নেটওয়ার্ক কনফিগারেশনটিতে কোনও পরিবর্তন আসে আপনি এটিকে ট্রিগার করতে পারেন। ফোল্ডারে launchdকোনও পরিবর্তন সন্ধান করতে আপনাকে কেবল এটি ব্যবহার করতে হবে এবং তা জানাতে হবে /Library/Preferences/SystemConfiguration/। আমার এটির একটি উদাহরণ রয়েছে github.com/tjluoma/onnetwork পরিবর্তন এ
টিজে লুওমা

6

এই অ্যাপলস্ক্রিপ্টটি ইথারনেট সংযোগটি সক্রিয় আছে কিনা তা পরীক্ষা করে দেখবে এবং তারপরে যদি একটি টাইম মেশিন ব্যাকআপ চালায়।

প্রথমে, সিস্টেমের পছন্দগুলিতে টাইম মেশিনটি অক্ষম করুন। নীচের পদ্ধতিটি এটি স্বয়ংক্রিয়ভাবে চালিত হবে।

ইথারনেটের সাথে সংযুক্ত থাকাকালীন , কোন ইন্টারফেসটি ইথারনেটকে নির্ধারিত হয়েছে তা নিশ্চিত করার জন্য আপনাকে নিজে একটি কমান্ড চালাতে হবে run এই আদেশটি চালান:

ifconfig

এটি তথ্যে পূর্ণ একটি পর্দা আউটপুট করা উচিত। আপনি যা সন্ধান করছেন তা হ'ল একটি বিভাগ enযার পরে একটি সংখ্যার লেবেলযুক্ত এবং যার শেষ লাইনটি এটি status: active:

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
    ether 00:25:00:ef:30:3c 
    inet6 fe80::225:ff:feef:303c%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.68 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect (100baseTX <full-duplex>)
    status: active

enশুরুতে পাশের নোটটি নোট করুন - এটি এমন ইন্টারফেস যা আপনার ইথারনেট সংযোগটি চলছে। নীচের স্ক্রিপ্টে, যেখানে এটি বলেছে en9, 9উপরে থেকে সংখ্যাটি প্রতিস্থাপন করুন । (আপনার কাছে যদি ম্যাক প্রো থাকে তবে এটি সম্ভবত সম্ভবত হবে en0বা en1Otherwise অন্যথায় এটি সম্ভবত হবে en0))

if (do shell script "ifconfig en9 | awk '/inet/ {print $2}'") is not equal to "" then
    do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &"
end if

এটি EthernetTimeMachine.scptআপনার হোম ফোল্ডারে ( /Users/<yourusername>/) হিসাবে সংরক্ষণ করুন ।

এরপরে টার্মিনালটি খুলুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন:

pico ~/crontab

এটি টাইম মেশিনটি ডিফল্টরূপে ঠিক যেমন ঘণ্টায় ভিত্তিতে এই স্ক্রিপ্টটি চালানোর জন্য আপনাকে অনুমতি দেওয়ার জন্য একটি পাঠ্য সম্পাদক খুলবে। এই লাইনটি আটকে দিন:

@hourly osascript ~/<yourusername>/EthernetTimeMachine.scpt

প্রেস control+ + Xতারপর টাইপ করুন yএবং এন্টার returnসংরক্ষণ করে প্রস্থান করতে।

এটি অক্ষম করতে, টার্মিনালে ফিরে যান, আবার কমান্ডটি ব্যবহার করুন:

pico ~/crontab

তারপরে আপনি উপরে যুক্ত লাইনটি মুছুন এবং সংরক্ষণ এবং প্রস্থান করতে একই পদক্ষেপগুলি ব্যবহার করুন।


আহ - এই দুর্দান্ত - ধন্যবাদ অনেক! একটি প্রশ্ন - আমার কি টাইম মেশিনটি নিষ্ক্রিয় করা দরকার? নাকি এটি সক্ষম হয়েছে? অবশ্যই এটি সক্ষম হয়ে থাকলে এটি এখনও তার নিজস্ব সময়সূচীতে চলবে?
ব্যাবেলমঙ্ক

অনুরূপ একটি লাইন চিন্তা (দুঃখিত ডবল পোস্টের জন্য) - তোমার মত এই কিছু চালাতে না পারে: lwgat.blogspot.co.uk/2013/02/... সক্ষম করতে / অক্ষম টাইম মেশিন, এবং @hourly চেয়ে কিন্তু নেটওয়ার্কে বরং এই চালানো ইভেন্ট পরিবর্তন?
ব্যাবেলমঙ্ক

আপনি এটি করার আগে টাইম মেশিনটিকে তার সেটিংসে অক্ষম করতে চান। যতক্ষণ না কোনও নেটওয়ার্ক চেঞ্জ ইভেন্ট এবং / অথবা টাইম মেশিনকে সক্ষম / অক্ষম করার বিষয়টি যথাযথভাবে কার্যকর। আমি আজ রাতে একবার দেখে নেব এবং অন্য উত্তরে একসাথে কিছু ফেলে দেব।
টিউবেডগ

একটি নেটওয়ার্ক পরিবর্তন সনাক্তকরণের একটি অসুবিধা হ'ল এটি সনাক্ত করার জন্য আপনার পটভূমিতে নিয়মিত কিছু চলতে হবে।
টিউবেডগ

-1

আপনি আপনার নেটওয়ার্ক প্রিফগুলি খুলতে এবং পরিষেবা ক্রমে ইথারনেট শীর্ষ সংযোগ নিশ্চিত করতে পারেন। আমি আশা করি এই স্ক্রিনশটটিতে আমি কী বোঝাতে চাইছি।

তারপরে, যদি ইথারনেট সংযুক্ত থাকে তবে আপনার এটিকে সর্বদা আপনার প্রাথমিক সংযোগ হিসাবে ব্যবহার করা উচিত।

পরিষেবার অগ্রাধিকারটি কীভাবে সেট করবেন তা এখানে দেখুন: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/


ধন্যবাদ, আমি এই টুকরা বুঝতে পারি। সমস্যাটি হল ইথারনেট সংযুক্ত না থাকলে আমার স্পষ্টভাবে ব্যাকআপগুলি অক্ষম করা দরকার। আমি অনুমান করি যে আমি এটি অ্যাপ্লিক্রিপ্ট লিখতে পারলাম এটি অক্ষম করতে / অক্ষম করতে (এরকম কিছু: hints.macworld.com/article.php?story=20040222210724156 ifconfig en0 থেকে গ্রেপিং) ...
ব্যাবেলমঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.