আমি এখানে বাড়িতে দুর্দান্ত ওয়াই-ফাই সেটআপ পাইনি এবং এটি কখনও কখনও টাইম মেশিন ব্যর্থ হয়ে যায়। সেখানে নির্দিষ্ট করার কোনও উপায় আছে যে টাইম মেশিনটি নির্দিষ্ট পরিস্থিতিতে কেবলমাত্র ব্যাক আপ করে - যেমন ইথারনেট সংযোগ সক্রিয় ...?
আমি এখানে বাড়িতে দুর্দান্ত ওয়াই-ফাই সেটআপ পাইনি এবং এটি কখনও কখনও টাইম মেশিন ব্যর্থ হয়ে যায়। সেখানে নির্দিষ্ট করার কোনও উপায় আছে যে টাইম মেশিনটি নির্দিষ্ট পরিস্থিতিতে কেবলমাত্র ব্যাক আপ করে - যেমন ইথারনেট সংযোগ সক্রিয় ...?
উত্তর:
এটি আমি পোস্ট করা অন্যান্য স্ক্রিপ্টের বিকল্প। এটি ব্যাকগ্রাউন্ডে চলে এবং প্রতিটি ইথারনেট সংযোগ বা ওয়্যারলেস ব্যবহার করছে কিনা তা নির্ধারণের জন্য প্রতি দুই মিনিটে নেটওয়ার্ক সংযোগ পরীক্ষা করে। যদি ইথারনেটে থাকে তবে এটি টাইম মেশিনকে সক্ষম করে; যখন সংযোগটি ওয়্যারলেসে স্যুইচ করে এটি টাইম মেশিনকে অক্ষম করে।
ইথারনেটের সাথে সংযুক্ত থাকাকালীন, কোন ইন্টারফেসটি ইথারনেটকে নির্ধারিত হয়েছে তা নিশ্চিত করার জন্য আপনাকে নিজে একটি কমান্ড চালাতে হবে 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
শুরুতে পাশের নোটটি নোট করুন - এটি এমন ইন্টারফেস যা আপনার ইথারনেট সংযোগটি চলছে।
নীচের স্ক্রিপ্টে, যেখানে এটি বলেছে 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
। ডেস্কটপ, বা অ্যাপ্লিকেশন ফোল্ডার - আপনার পছন্দ যেখানেই এটি সংরক্ষণ করুন - এটি সত্যিই কিছু যায় আসে না, কেবল কোথায় আপনি এটি সংরক্ষণ করেছেন তা জেনে নিন।
এরপরে, টার্মিনাল খুলুন। নিম্নলিখিত আদেশগুলি টাইপ করুন:
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
sudo
একটি পাসওয়ার্ড ছাড়াই রান সেট আপ করাsudo
পাসওয়ার্ড ছাড়াই টার্মিনাল কমান্ড চালানো খুব বিপজ্জনক হতে পারে। এজন্য উপরের পদক্ষেপগুলি তাদের নিজস্ব ডিরেক্টরিতে শেল স্ক্রিপ্ট তৈরি করেছিল, তাই আসলে কী চালানো যায় তা সীমাবদ্ধ।
টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করান:
sudo pico /etc/sudoers
তারপরে অনুরোধ করা হলে আপনার প্রশাসকের পাসওয়ার্ড লিখুন।
এটি আপনাকে (বেশিরভাগ) ফাঁকা স্ক্রিনে নিয়ে আসতে পারে বা এটিতে কিছু লেখা থাকতে পারে। যদি এটি ফাঁকা থাকে - ঠিক আছে। আপনি উপরে নীচের লাইনটি কেবল পেস্ট করবেন। যদি পাঠ্য ইতিমধ্যে বিদ্যমান থাকে তবে তাও ঠিক আছে; # User privilege specification
নিচের স্ক্রিনশটে যেমন দেখা গেছে, বিভাগে ইতিমধ্যে লাইনের ঠিক নীচে যেতে আপনার ডাউন তীরটি ব্যবহার করুন ।
এখানে, নিম্নলিখিত লাইন যুক্ত করুন:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
উভয় জায়গায় যেখানে <yourusername>
উপস্থিত হয়, এটি আপনার ম্যাক ব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন করুন। প্রেস control+ + x, টাইপ yএবং প্রেস returnসংরক্ষণ করতে করে প্রস্থান করুন।
এই ফাইলগুলি নিম্নলিখিত কমান্ডটি চালিয়ে টাইম মেশিনটি চালু এবং বন্ধ করে পরীক্ষা করুন (ধরে নিই যে টাইম মেশিন বর্তমানে চালু রয়েছে):
sudo ./TM_Off.csh
এক মুহুর্তের পরে মেনুবারের টাইম মেশিন আইকনটি ধূসর হয়ে উঠবে, নির্দেশক সময় মেশিনটি বন্ধ রয়েছে is (পরিবর্তনটি প্রতিবিম্বিত করতে আপনার আইকনটি ক্লিক করতে হতে পারে)। এই কাজটি ধরে নিয়ে, এই কমান্ডটি চালান:
sudo ./TM_On.csh
এবং টাইম মেশিনটি পুনরায় সক্ষম করা উচিত।
উপরে অ্যাপলস্ক্রিপ্ট সম্পাদকটিতে আপনি তৈরি করা অ্যাপ্লিকেশনটি চালান এবং এটি ইথারনেট থেকে ওয়্যারলেস এবং পিছনে আপনার সংযোগ হিসাবে টাইম মেশিনটি সক্ষম ও অক্ষম করে উন্মুক্ত থাকবে। স্যুইচিং অক্ষম করতে, কেবল অ্যাপলস্ক্রিপ্ট অ্যাপ্লিকেশনটি বন্ধ করুন (ডকের আইকনে ডান ক্লিক করুন এবং প্রস্থান নির্বাচন করুন)।
launchd
কোনও পরিবর্তন সন্ধান করতে আপনাকে কেবল এটি ব্যবহার করতে হবে এবং তা জানাতে হবে /Library/Preferences/SystemConfiguration/
। আমার এটির একটি উদাহরণ রয়েছে github.com/tjluoma/onnetwork পরিবর্তন এ ।
এই অ্যাপলস্ক্রিপ্টটি ইথারনেট সংযোগটি সক্রিয় আছে কিনা তা পরীক্ষা করে দেখবে এবং তারপরে যদি একটি টাইম মেশিন ব্যাকআপ চালায়।
প্রথমে, সিস্টেমের পছন্দগুলিতে টাইম মেশিনটি অক্ষম করুন। নীচের পদ্ধতিটি এটি স্বয়ংক্রিয়ভাবে চালিত হবে।
ইথারনেটের সাথে সংযুক্ত থাকাকালীন , কোন ইন্টারফেসটি ইথারনেটকে নির্ধারিত হয়েছে তা নিশ্চিত করার জন্য আপনাকে নিজে একটি কমান্ড চালাতে হবে 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
বা en1
Otherwise অন্যথায় এটি সম্ভবত হবে 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
তারপরে আপনি উপরে যুক্ত লাইনটি মুছুন এবং সংরক্ষণ এবং প্রস্থান করতে একই পদক্ষেপগুলি ব্যবহার করুন।
আপনি আপনার নেটওয়ার্ক প্রিফগুলি খুলতে এবং পরিষেবা ক্রমে ইথারনেট শীর্ষ সংযোগ নিশ্চিত করতে পারেন। আমি আশা করি এই স্ক্রিনশটটিতে আমি কী বোঝাতে চাইছি।
তারপরে, যদি ইথারনেট সংযুক্ত থাকে তবে আপনার এটিকে সর্বদা আপনার প্রাথমিক সংযোগ হিসাবে ব্যবহার করা উচিত।
পরিষেবার অগ্রাধিকারটি কীভাবে সেট করবেন তা এখানে দেখুন: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/