집에서 훌륭한 Wi-Fi 설정을 얻지 못하여 Time Machine 백업이 실패하는 경우가 있습니다. 특정 상황에서만 Time Machine이 백업되도록 지정하는 방법이 있습니까? 즉 이더넷 연결이 활성화되어 있습니까?
집에서 훌륭한 Wi-Fi 설정을 얻지 못하여 Time Machine 백업이 실패하는 경우가 있습니다. 특정 상황에서만 Time Machine이 백업되도록 지정하는 방법이 있습니까? 즉 이더넷 연결이 활성화되어 있습니까?
답변:
이것은 내가 게시 한 다른 스크립트의 대안입니다. 백그라운드에서 실행되며 2 분마다 네트워크 연결을 테스트하여 이더넷 연결 또는 무선을 사용하고 있는지 확인합니다. 이더넷에 있으면 Time Machine이 활성화됩니다. 연결이 무선으로 전환되면 Time Machine이 비활성화됩니다.
이더넷에 연결되어있는 동안 어떤 인터페이스 이더넷이 할당되었는지 확인하려면 하나의 명령을 수동으로 실행해야합니다. 이 명령을 실행하십시오 :
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이어야합니다. Mac Pro를 사용하는 경우 1 일 수 있습니다.) 또한 아래 스크립트에서 맨 위에있는 고유 한 Mac 사용자 이름으로 바꾸십시오.0
en
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>
Mac 사용자 이름으로 바꾸십시오. control+를 누르고 x입력 한 y다음를 눌러 return저장하고 종료하십시오.
다음 명령을 실행하여이 파일들이 Time Machine을 켜고 끄는 지 테스트하십시오 (Time Machine이 현재 켜져 있다고 가정).
sudo ./TM_Off.csh
잠시 후 메뉴 표시 줄의 Time Machine 아이콘이 회색으로 바뀌면서 Time Machine이 꺼져 있음을 나타냅니다. 변경 사항을 반영하려면 아이콘을 클릭해야 할 수도 있습니다. 이것이 작동한다고 가정하면 다음 명령을 실행하십시오.
sudo ./TM_On.csh
Time Machine을 다시 활성화해야합니다.
위의 AppleScript 편집기에서 생성 한 응용 프로그램을 실행하면 연결이 이더넷에서 무선으로 또는 다시 전환 될 때 Time Machine을 활성화 및 비활성화 할 수 있습니다. 전환을 비활성화하려면 AppleScript 응용 프로그램을 닫으십시오 (Dock에서 아이콘을 마우스 오른쪽 단추로 클릭하고 종료를 선택하십시오).
launchd
변경하기 위해 사용 하고 알려 주면됩니다 /Library/Preferences/SystemConfiguration/
. github.com/tjluoma/onnetworkchange 에서이 예제를 사용할 수 있습니다 .
이 AppleScript는 이더넷 연결이 활성화되어 있는지 확인한 다음 Time Machine 백업을 실행합니다.
먼저 시스템 환경 설정에서 Time Machine을 비활성화하십시오. 아래 방법은 자동으로 실행됩니다.
이더넷에 연결되어있는 동안 어떤 인터페이스 이더넷이 할당되었는지 확인하려면 하나의 명령을 수동으로 실행해야합니다. 이 명령을 실행하십시오 :
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
위의 번호. (Mac Pro를 사용하는 경우 대부분 en0
또는 en1
입니다. 그렇지 않으면 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
Time Machine처럼 기본적으로이 스크립트가 매시간 실행되도록 예약 할 수있는 텍스트 편집기가 열립니다. 이 줄을 붙여 넣습니다.
@hourly osascript ~/<yourusername>/EthernetTimeMachine.scpt
를 눌러 control+는 X다음 입력 y
하고 Enter 키를 눌러 return저장하고 종료합니다.
비활성화하려면 터미널로 돌아가서 다음 명령을 다시 사용하십시오.
pico ~/crontab
그런 다음 위에서 추가 한 행을 삭제하고 동일한 단계를 사용하여 저장하고 종료하십시오.
네트워크 환경 설정을 열고 이더넷이 서비스 순서에서 최상위 연결인지 확인할 수 있습니다. 이 스크린 샷에서 무슨 의미인지 알 수 있기를 바랍니다.
그런 다음 이더넷이 연결되어 있으면 항상 기본 연결로 사용해야합니다.
서비스 우선 순위를 설정하는 방법은 여기를 참조하십시오 : http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/