Mac OS X에서 네트워크 프로필을 액세스 포인트 이름으로 자동 전환
Sleep에서 해제할 때 네트워크 프로파일을 액세스 포인트 이름으로 자동 전환
사용하는 Mac 환경은 OS X El Capitan 10.11.5, Mac book Pro입니다.
배경과 도전
회사 내 네트워크를 사용하려면 프록시 설정이 필요합니다. 인프라 부문에서는 Proxy의 자동 설정을 위한 파일(?)이 준비되어 있어, 통상은 이것을 Automatic Proxy Configuration으로 설정해 두면 됩니다만, 아무래도 Mac 대응이 잘 하고 있지 않은지 알 수 있습니다 아니지만 수동으로 프록시를 설정하지 않으면 잘 작동하지 않는 것에 많이 접했습니다. Mac을 집에 가져와 이용하는 경우에는 Proxy를 분리할 필요가 있어, 이 근처의 조작이 맨도라고 느끼고 있어, 이하와 같이 대응해 보았습니다.
Mac OS X의 네트워크 프로필 설정
이것을 시작하기 전에는 일일이 손으로 Proxies의 설정을 포치포치 변경하고 있었습니다만, 「Location」이라고 하는 설정이 있는 것을 깨닫고, 이것을 사용하기로 했습니다. Location에 'Intra'를 만들고 Intra는 고정으로 Proxy를 설정하도록했습니다.
이것으로 종래보다는 간단하게 네트워크 설정을 바꿀 수 있게 되었습니다만, 안내외, 이 전환까지의 메뉴 조작이 깊고 맨도입니다. 어떻게든 할까라고, 스크립트화해 보았습니다.
현재 연결된 SSID의 이름을 확인하고 그에 따라 구성된 네트워크 프로필을 전환합니다. 전환에는 scselect
라는 명령을 사용하고 있습니다. 시험에 terminal에서 scselect
를 실행해 보면 움직임을 알 수 있다고 생각합니다.
#!/bin/bash
# set AccessPoint uniqe name for switch profile.
appname=Buffalo
if [ "`networksetup -getairportnetwork en0 | awk '{print $4}'`" = "$appname" ]; then
scselect Intra
else
scselect Automatic
fi
htps : // 기 st. 기주 b. 코 m / 고바코 / 오 54f806bc3550 646 아 31837 에 f f b982
appname 부분을 Intra에서 사용하는 SSID로 변경하십시오.
Sleep 해제로 스크립트를 자동 실행하여 자동 설정 변경
이렇게 되면, Sleep로부터의 해제등을 트리거에 이 스크립트를 움직여 자동 설정해 주었으면 하는군요. 여러가지 찾아 보았습니다만 좀처럼 쉬운 방법을 찾을 수 없고,. Sleepwatcher 을 사용하면 좋을 것 같습니다. (그 밖에도 더 편한 방법이 있으면 알려주세요!) Readme.rtf의 절차에 따라 SleepWatcher를 설치하고 위의 스크립트를 실행하도록 설정!
SleepWatcher의 도입 순서는 이 기사 가 참고가 되었습니다. 대충 로그를 붙이면,
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8
$ cp ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/
$ launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
$ launchctl list | grep sleepwatcher
방금 스크립트를 .wakeup으로 호출 할 수 있습니다.
$ ln -s ~/Documents/tools/check-n-select-netprof.sh ./.wakeup
이것으로 잘 작동했습니다 (^^)
작업 후 후일담 : Sleep 해제라고 너무 빠르므로 Alfred에서 실행할 수 있도록 설정
실제로, 운용하고 있어 알았습니다만, 같은 장소에 있으면 좋겠습니다만 의외 장소를 이동하고 있으면 Sleep 해제시에는 WiFi가 아직 접속되어 있지 않은 것이 많아, 예상대로의 액세스 포인트명 (SSID)가 잡히지 않는 것이 좋았습니다.
어쩔 수 없이 Terminal을 기동해, 실행하는 일이 있었습니다만, 모처럼이므로 AppleScript로 기동할 수 있도록 해, 그것을 Alfred 로 호출하도록(듯이) 했습니다.
do shell script "~/Documents/tools/check-n-select-netprof.sh"
display dialog result
이런 스크립트를 저장합니다.
Alfred는 기본적으로 AppleScript를 찾고 있지 않으므로 체크를 둡니다.
이제 잘 작동하지 않을 때에도 Alfred에서 스크립트를 실행할 수 있습니다.
이것만 빨리 실행할 수 있다면, Sleep 해제를 자동 검출할 필요는 없었군요. 그리고 지금은 깨달았습니다.
또한 후일담
.sh
를 .app
로 두면 Alfred에서 호출하는 것을 알았고 Alfred에서 자동으로 자동 선택 스크립트를 실행하는 것이 가장 확실하다는 것을 알았습니다. 드디어 Banner로 은근하게 실행 결과를 통지하는 느낌으로 변경.
이 스크립트(Github gist)을 .app
로 이름을 바꾸고 사용할 수 있습니다.
(완전히 기사 제목에서 내용이 괴리해 버렸다...웃음)
Reference
이 문제에 관하여(Mac OS X에서 네트워크 프로필을 액세스 포인트 이름으로 자동 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kobakou/items/93f18aac4334e87f6d04
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/bash
# set AccessPoint uniqe name for switch profile.
appname=Buffalo
if [ "`networksetup -getairportnetwork en0 | awk '{print $4}'`" = "$appname" ]; then
scselect Intra
else
scselect Automatic
fi
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8
$ cp ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/
$ launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
$ launchctl list | grep sleepwatcher
$ ln -s ~/Documents/tools/check-n-select-netprof.sh ./.wakeup
do shell script "~/Documents/tools/check-n-select-netprof.sh"
display dialog result
Reference
이 문제에 관하여(Mac OS X에서 네트워크 프로필을 액세스 포인트 이름으로 자동 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kobakou/items/93f18aac4334e87f6d04텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)