Đây là một thay thế cho các kịch bản khác tôi đã đăng. Cái này chạy trong nền và kiểm tra kết nối mạng cứ sau hai phút để xác định xem nó đang sử dụng kết nối Ethernet hay không dây. Nếu trên Ethernet, nó kích hoạt Time Machine; khi kết nối chuyển sang không dây, nó sẽ vô hiệu hóa Time Machine.
Bước 1: Kiểm tra hệ thống
Trong khi kết nối với Ethernet, bạn sẽ cần chạy một lệnh thủ công để xác nhận Ethernet giao diện nào được gán cho. Chạy lệnh này:
ifconfig
Nó sẽ xuất ra một màn hình đầy đủ thông tin. Những gì bạn đang tìm kiếm là một phần được gắn nhãn en
với một số sau nó, và dòng cuối cùng của nó là status: active
như thế này:
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
Lưu ý số bên cạnh en
lúc đầu - đây là giao diện mà kết nối Ethernet của bạn đang chạy.
Bước 2: Tạo Ứng dụng AppleScript
Trong đoạn script bên dưới, nơi nó nói set wired_interface to "0"
, thay đổi 0
số bên cạnh en
trong đầu ra ở trên. (Nó phải là 0, nếu bạn đang ở trên một máy Mac Pro, nó có thể là 1.) Cũng trong bên dưới kịch bản, ở phía trên nơi nó nói myusername
, thay tên Mac của riêng bạn.
-- 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để tiết kiệm. Trong trang thuộc tính Save, đặt File Format
as Application
và chọn hộp cho Stay open after run handler
. Lưu nó bất cứ nơi nào bạn thích - Máy tính để bàn hoặc Thư mục ứng dụng - thực sự không quan trọng, chỉ cần biết bạn đã lưu nó ở đâu.
Bước 3: Tạo tập lệnh Shell
Tiếp theo, mở Terminal. Nhập các lệnh sau:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Dán dòng sau vào:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Nhấn control+ x, gõ yvà nhấn returnđể lưu và thoát. Sau đó chạy lệnh này:
pico TM_Off.csh
Và trong tập tin này dán dòng sau:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Một lần nữa, control+ x, sau đó yvà returnđể lưu và thoát.
Tiếp theo, nhập các lệnh sau:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Bước 4: Thiết lập sudo
để chạy mà không cần mật khẩu
Để lệnh Terminal sudo
chạy mà không có mật khẩu có thể rất nguy hiểm. Đó là lý do tại sao các bước trên tạo ra các tập lệnh shell trong thư mục riêng của chúng, vì vậy những gì thực sự có thể chạy được giới hạn.
Nhập lệnh sau trong Terminal:
sudo pico /etc/sudoers
Sau đó nhập mật khẩu quản trị viên của bạn khi được nhắc.
Điều này có thể đưa bạn đến một màn hình trống (hầu hết) hoặc nó có thể có một số văn bản trong đó. Nếu nó trống - điều đó tốt. Bạn sẽ chỉ cần dán dòng dưới đây ở trên cùng. Nếu văn bản đã tồn tại, điều đó cũng tốt; sử dụng mũi tên xuống của bạn để đi ngay bên dưới các dòng đã có trong # User privilege specification
phần, như được thấy trong ảnh chụp màn hình bên dưới.
Tại đây, thêm dòng sau:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
Ở cả hai nơi <yourusername>
xuất hiện, thay thế nó bằng tên người dùng Mac của bạn. Nhấn control+ x, gõ yvà nhấn returnđể lưu và thoát.
Kiểm tra xem các tệp này có bật và tắt Time Machine không bằng cách chạy lệnh sau (giả sử Time Machine hiện đang bật):
sudo ./TM_Off.csh
Sau một lát, biểu tượng Time Machine trong thanh thực đơn sẽ chuyển sang màu xám, cho biết Time Machine đã tắt. (Bạn có thể cần nhấp vào biểu tượng cho nó để phản ánh sự thay đổi). Giả sử công việc này, chạy lệnh này:
sudo ./TM_On.csh
Và Time Machine nên được kích hoạt lại.
Và tắt bạn đi
Chạy ứng dụng bạn đã tạo trong AppleScript Editor ở trên và ứng dụng sẽ vẫn mở, bật và tắt Time Machine khi kết nối của bạn chuyển từ Ethernet sang không dây và trở lại. Để tắt chuyển đổi, chỉ cần đóng ứng dụng AppleScript (nhấp chuột phải vào biểu tượng trong Dock và chọn Thoát).