rsync, 그리고 Encoding

회사에서 주로 음악을 다운로드 받다보니… 해당 데이터를 집에 있는 서버로 동기화 시킬 필요가 있었다.

음악은 사서 듣는 것이 좋습니다 ㅇㅅㅇ

동기화는 맥 미니 OSX 에서 Odroid 우분투로 진행해야 했다. 그래서 새로 프로그램을 짤까… 아니면 다른 프로그램을 설치할까 고민하다가… 역시 기본적인 툴이 좋겠거니 해서 rsync를 사용하기로 했다.

rsync -av [Music_Direcotry] [Server_ID]@[Server_Address]:[Server_Path]

 

너무 쉬운 명령어다. 물론 패스워드는 그전에 public 키로 자동 로그인 되도록 하였다.

 

아무튼… 이렇게 했는데 동기화가 잘된다. 그런데 살짝 이상한 점을 찾았다.

# ls
한글1 한글2 한글3
# cd 한글1
-bash: cd: 한글1 : No Such file or directory

위의 테스트 결과를 보면 ls 할 경우 정상적으로 디렉토리가 보인다. 한글이 깨지지도 않고 정상적이라는 것을 확인할 수 있다. 그런데… 디렉토리 이동을 할 경우 찾을 수 없는 디렉토리라고 한다.

 

멘탈이 살살 녹아내렸다. 그렇다고 디렉토리가 아에 없는 것은 아니었다.

ls */*
.
.
.

위와 같이 */* 로 검색을 하면 정상적으로 파일은 보였기 때문이다.

 

그래서 한참을 구글링하다 보니 rsync의 인코딩 문제가 아닐까 하는 의심이 생겼다. 그래서 rsync encoding 이란 내용으로 구글링 해보민 –iconv= 옵션을 사용하면 정상적으로 사용할 수 있다고 한다.

근데… OSX 기본 rsync는… –iconv 옵션이 없다. 그래서 먼저 brew로 설치를 다시 해주고 테스트 해보기로 한다.

brew install rsync

내 예상이 맞았는지 새로운 rsync가 설치된다. 새롭게 설치된 rsync의 주소는 아래와 같았다.

/usr/local/Cellar/rsync/[VERSION]/bin/rsync

기존 명령어를 새로운 명령어로 대치할 수 있지만 추후 문제가 될 수도 있다는 생각이 들어 해당 버젼은 그대로 두고 아래와 같이 명령어를 작성해주었다.

/usr/local/Cellar/rsync/3.1.2/bin/rsync -av --iconv=utf-8-mac,utf-8 [Source] [Destination]

위의 명령어 사용 후 정상적으로 디렉토리에 접근 가능함을 확인하였다.

 

핸드폰 교체, 블랙베리 키원 블랙 에디션 4G/64GB

이번 iOS11 업데이트 이후… 정말 정말 짜증을 내다가 이번 기회에 핸드폰을 다시 블랙베리로 기변했다.

사실 아이폰이 쓰기 편하긴 하지만…. iOS 11 이후에

간헐적 프리징 현상 ( 특히 시리의 앱 추천이 떠 있을 때 )

하단 패널에서 와이파이 끄기가 안됨

때문에 정말 정이 뚝 떨어져 버렸다.

 

그래서 다른 핸드폰을 쓰고 싶었는데 결국은 블랙베리로 돌아왔다.

이번 키원 ( KeyOne ) 의 경우, 엄청나게 좋은 성능을 가진 폰은 아니지만

물론 가격은… 왠만한 플래그 쉽 가격…

이전 프리브에 비해서 카메라나 발열등의 문제가 없었기에 바로 직구를 했다. 따로 배대지를 이용하면 좀 더 저렴할 수 있었겠으나 신뢰 문제도 있고 해서 그냥 체리폰에서 정가 주고 구입했다.

 

 

구입한 후기는 뭐… 그냥 블랙베리다. 사실 안드로이드랑 별 차이 없다. 물론 특화된 앱, 블랙베리 허브 라던가, 블랙베리 런처라던가는 좀 다른긴 해도… 다른 안드로이드 폰에 설치도 가능하니까 말이다.

그냥 키보드 + 안드로이드 + 이름값 정도의 설명이면 될 듯하다.

물론 보안 기능이나 이런건 다른 안드로이드보다 뛰어나다고 한다.

그런데 개인적인 용도에서 얼마나 그런게 필요할까?

아무튼… 써본 소감은,

생각보다는 빠르다. 물론 주변의 조언 중에 가장 중요한게 있었다.

블랙 에디션 4기가 메모리 / 64기가 용량을 사라

위의 조언은 꼭 지켜야 한다. 3기가랑 4기가 사실 1기가 차이가 뭐 그리 크냐? 라고 할지도 모르지만 크다. 반드시 블랙 에디션 4기가 / 64기가를 사는 것이 좋다. 조언 주신분께 감사의 마음을!

 

일단 키감도 나쁘지 않고 안돌아가는 어플도 없고, 한 동안은 여기에 정착할 듯 하다.

[LG U+ LTE Router] USIM 을 Trek2에 사용하기

다시 돌아온 LG U+ LTE Router USIM 테스트!!

이전 글에서 언급한 충동 구매로 손에 들어온 Trek2에 해당 USIM을 삽입하였다.

결론부터 이야기 하자면

ZTE Trek2 HD K88 : LG U+ Router USIM 동작 확인

너무 허무할 정도로 잘 된다. 하지만 해줘야 할 작업이 있다. 바로 APN 세팅.

 

인터넷에 LG U+ APN 이라고 검샋하면 엄청나게 많은 결과가 나오지만 이 블로그의 목적 자체가 기록이므로

Setting -> Mobile networks -> Access Point Names

로 이동하여 오른쪽 상단에 +를 눌러주고 아래 값들을 채운다. 적혀 있지 않은 값은 그냥 그대로 두면 된다.

Name : LG #아무거나 적어도 된다.

MMSC : http://omammsc.uplus.co.kr:9084

MMS Port : 9084

MCC : 450

MNC : 06

을 입력하고 오른쪽 상단 메뉴를 열어 저장하고 나온뒤 해당 값을 선택하고 재부팅한다.

 

 

위와 같이 LG U+ 가 잡히고 4G로 통신하고 우측에 안테나가 동작한다.

여기서 하나 저 4G 마크가 귀엽다.

이렇게 세팅하고 성능 테스트를 해보았다.

 

 

37.3Mbps, 그럭저럭 잘 나오는 것을 확인하였다.

 

 

[사용기] ZTE Trek2 HD K88 간략 사용기

이번에 LTE Router 관련 테스트를 진행하기 위해 디바이스를 알아보던 중…

요즘 핫한 ZTE Trek2 HD K88 ( 이후 Trek2 ) 를 알게 되었다. 그리고 열심히 조사하던 중에…

 

“이건 사야해!”

 

맞다 충동구매다. 하지만 가격이 10만원이기 때문에 부담없이 질러보았… ( 통장 잔고야 미안… )

 

아무튼 4일전 그러니까, 월요일날 해외 구매를 진행했고 오늘 도착하여서 간략하게 장단점을 써보고자 한다.

 

일단 장점

싸다, 이건 정말 반박불가

싼거에 비해 성능이 좋다

싼거에 비해 화면이 좋다

싼거에 비해 소리가 좋다

LTE 지원된다

그리고 단점은

장점에 나온거 전부

뭔가 결론이 아리까리 하지만 10만원이라는 가격을 생각한다면…. 좋다. 너무 좋다. 하지만 사실 고급 기계에 길들여져 있는 IT인간이라면 조금 아쉬울 수도 있을 것이다. 하지만…. 다른 탭을 써본 나로서는…

 

현재 내가 가지고 있는 탭은

레노버 요가탭3 프로 ( 빔 프로젝스 내장 )

넥서스 7 3g 1세대

위와 같다. 그런데 위에 두대보다… 훨씬 빠르다… 요가탭3 프로는 살 때 당시 50 가까이 줬는데…..

갑자기 슬퍼졌다…. 아무튼 앞으로 주 사용 태블릿은 Trek2가 될 것 같아 보인다.

 

 

 

LTE 관련은 다음 글에 작성할 예정이다.

[LG U+ LTE Router] USIM 을 PRIV에 사용하기

우선 해당 내용은 인터넷 검색을 통해서 대부분 확인할 수 있는 정보를 바탕으로 시행 착오를 거치며 작성되었다.

 

우선 첫번째, LTE Router는 다양한 통신사에서 제공을 하고 있다. SK, KT, LG 뭐 다 있다고 보면 되는데 대부분의 사람들은 이 제품 자체가 낯설게 느껴질 것이다.

혹시 나이가 좀 있으신 분이라면 예전에 KT에서 서비스 했던 Wibro를 기억하고 있을지도 모른다. Egg라고 부르는 단말기를 이용하여 서울 시내 및 일부 대도시 지역에서 인터넷을 사용할 수 있었던 서비스이다.

LTE Router는 이 Egg에서 Wibro를 제공 하는 것이 아니라 LTE를 제공한다고 보면 된다.

이동식 무선 공유기 개념이 조금 더 적절할지도 모르겠다.

 

 

아무튼 이 LTE Router 통신 요금 중 LG U+ 의 경우 약간 묘하다.

일단 일반 태블릿 요금제들 보다 저렴하다. 대략 10-20% 정도? 해당 내용은 자세히 찾아봐야 하지만… 귀찮…. 아무튼 그래서 처음에 몇몇 분들이 시도를 해서 성공한 케이스가 있다. 하지만 모든 디바이스에서 테스트를 한게 아니기 때문에 일부 디바이스에서는 동작하지 않았다는 결과도 있었다. 그래서 하나하나 해볼 수 있는 장비에 대해서는 테스트를 수행해보려고 한다.

 

그 첫번째, 블랙베리 Priv 이다. 한국에 정식 발매된 버젼은 STV 100-3 모델로 LG U+의 경우 그냥 USIM만 장착하면 된다. 하지만 AT&T 버젼에서 LTE를 사용하기 위해서는 아래와 같은 작업이 필요하였다. 뭐 작업을 하긴 해야 하지만 일단 결론 부터 말하자면,

Blackberry Priv STV 100-1 AT&T : LG U+ Router USIM 동작 확인

**** 재부팅 후 다시 안되는 것을 확인 재 검증 필요

**** OTA 업데이트 수행시 안되는 것을 확인

일단 작업 순서는 크게 2단계로 나눌 수 있다.

  1. Priv 한국 정펌 올리기
  2. 3G OFF

*** 주의 사항 : OTA 업데이트를 수행하면 안됩니다.

스스로 가장 삽질을 많이 했던 곳이 바로 2번 3G OFF 이다. 일단 한국 정펌 올리기 같은 경우에는 링크로 대체한다.

Clien, Nibor 님의 Priv 한국 정펌 올리기

위의 링크를 따라가면 쉽게 할 수 있다. 자 그럼 1번은 완료 되었고… 다음은 2번 할 차례다.

 

 

2번을 하기 위해서는 Hidden Menu 라고 부르는 서비스 관리 메뉴로 접근을 해야 한다. 단순히 안드로이드 설정 화면에서는 LTE ONLY 라는 항목이 없기 때문이다.

 

  1. USIM 장착
  2. 설정 화면 패스, 패스, 패스
  3. 전화 걸기로 들어가서 키패드를 띄운다.
  4. *#*#4636#*#* 입력
  5. 첫번째 메뉴 “휴대전화 정보”
  6. 아래로 쭉 내리다가 “Unknown” 이라고 된 텍스트를 클릭
  7. ‘LTE Only’ 선택

위와 같이 하면 일단 인터넷이 되는 것을 확인할 수 있다.

 

중요 정보 : 재부팅후 다시 안되는 것을 확인, 추가 확인 필요

**** OTA 업데이트를 하지 않을 경우 정상 작동 확인 : 2017.09.26

동작 확인 사진은 아래와 같다. ( 2017.09.26 추가 )

 

 

LG U+ 케리어와 LTE 안테나 등이 정상적으로 잡힌다.

 

 

인터넷 역시 정상적으로 동작한다.

Fail2Ban 재설정 기념 로그 살펴보기

Fail2Ban을 재설정하고 차단을 활성화 시킨 후 문득 궁금해졌다.

대략 하루에 몇번의 접속 시도가 있을 것인가에 대한 것이었다.

 

사실 이 블로그 조차 찾아오는 이가 너—–어무 적은데 들어와 봤자 얼마나 오겠어라는 생각에 조회를 해보았다.

 

그런데 생각보다 많다.

2017년 09월 21일 기준 : 로그인 시도 ( 단순 메시지 기준으로 ) 979회

왜? 도대체 여기에 뭐가 있다고?

그렇다면 시도한 IP 주소는 어떻게 될까?

2017년 09월 21일 기준 : 로그인 시도 IP 수는 27개

무려 27 곳에서 내 서버를 탐내고 있다.

 

 

…. 이해가 안된다. 물론 좀비로 쓰려고 하면 할 수 있겠지만 이거참…. 주기적으로 패스워드를 바꿔 주는게 좋을듯 하긴 하다.

 

아무튼 해당 데이터가 어떤지 보려고…. 파이썬을 조금 이용해 보았다.

 

파이썬 + freegeoip 라고 생각하면 좋을 듯 하다.

 

import json
import requests


if __name__ == '__main__':
    country_ip_dict = {}
    for line in open("cut", "r"):
        res = requests.get("http://freegeoip.net/json/" + line.strip()).text
        res_json = json.loads(res)
        if res_json['country_name'] not in country_ip_dict: c
            ountry_ip_dict[res_json['country_name']] = []
        country_ip_dict[res_json['country_name']].append(line.strip())

    key_list = country_ip_dict.keys()
    key_list.sort()

    for _key in key_list:
        print _key, ":", len(country_ip_dict[_key])
        for item in country_ip_dict[_key]:
            print "    -", item

 

그래서 목록을 만들어 보았더니…

 

Australia : 1
– 203.27.138.60
China : 7
– 117.78.34.221
– 123.183.209.135
– 123.59.199.40
– 124.93.247.99
– 182.61.21.98
– 218.28.238.162
– 58.30.96.138
Croatia : 2
– 5.188.10.179
– 5.188.10.182
France : 2
– 212.129.23.96
– 90.41.191.181
Indonesia : 1
– 103.71.255.27
Israel : 1
– 62.219.209.70
Italy : 1
– 212.237.11.114
Netherlands : 1
– 95.211.230.94
Poland : 1
– 62.21.48.119
Republic of Korea : 4
– 1.209.148.74
– 1.221.187.110
– 14.58.118.69
– 180.70.170.34
Russia : 1
– 185.110.132.49
Seychelles : 1
– 93.174.90.30
Singapore : 1
– 139.59.110.43
Sweden : 1
– 85.230.149.52
Ukraine : 1
– 193.201.224.236
United States : 1
– 74.208.169.251

역시 부동의 1위는 중국이다. 아… 진짜… 그리고 2위는 한국이다…

 

가끔은 진짜 궁금해진다. 도대체 무슨 용도로 내 서버에 그리 접속하려는 걸까? 단순히 경유지로 쓰려고? 흠… 뭐… 아무튼… 일하기 싫은 금요일 오후 약간의 삽질을 해보았다.

 

 

Fail2Ban 무시할 IP 설정하기

아무생각 없이 SSH 관련된 프로그램을 짜고 서버에서 테스트를 하기 위해서 돌렸더니 심각한 문제가 발생하였다.

 

SSH 접속 불가

 

처음에는

 

응? 왜? 뭐지?

 

라고 멘붕이 왔다가 웹 페이지를 열어 서버는 정상 동작 중인 것을 확인하였고….. 그렇다면 SSH 데몬이 문제인데 라고 생각하다가 얼마전에 중국발 접속 시도가 너무 많아서 설치했던 fail2ban을 기억해냈다.

 

이렇게 된 것이다. SSH 관련 프로그램을 실행 했더니 이 녀석이 이상 동작을 하게 되고 결론적으로 재접속 시도가 늘고 fail2ban 동작!! 이라는 상황…

 

아무튼 해당 문제를 해결하기 위해서는 아래와 같이 수정해주면 된다.

 

vim /etc/fail2ban/jail.conf

에서 ignoreip 옵션을 찾은 후

ignoreip = [원하는 무시할 IP 주소]/24

저장하고 종료 후,

 

fail2ban-client reload

내가 설정한 보안이 날 막다니…. 이런…

 

[PredictionIO] Prediction IO redeploy (Prediction IO 에서 다시 deploy 하기)

Prediction IO 를 테스트 삼아 이런저런 작업을 수행중이다.

그러던 중 가장 큰 의문 중 하나가

train 시키고 다시 deploy 시키려면 껏다 다시 켜야 하나?

였다.

 

테스트를 해보니 그냥 deploy 하면 된다. 그럼 새로운 서버가 동작하게 되고 자연 스럽게 이전 서버는 죽는다.

자동차 모니터링을 위한 안드로이드 설정 2

자동차 모니터링을 위한 안드로이드 설정, 1

이전 글에 이어서 자동차 모니터링을 위한 안드로이드 설정을 수행한다.

일단 이 글의 기준은 겔럭시 S (KT 용) 기준으로 작성되었다. 또한 rooting 은 되어 있다고 가정하고 진행한다.

 

가장 먼저 한 것은 바로 Charging Mode 제거이다.

 

Charging Mode

전원이 꺼진 상태에서 충전 케이블을 연결 하였을 때, 핸드폰이 바로 켜지지 않고 베터리 충전하는 모양이 뜨는 상태를 Charging Mode 라고 한다.

아주 오래전… 초창기 안드로이드에서는 없었는데 어느 순간 생겼다.

즉, Charging Mode를 제거하고 전원 연결시 바로 부팅으로 가도록 하는 작업이 필요하다. 제거하는 방법은 두가지 정도의 방법이 있다.

 

  1. 핸드폰 개발사에서 제공하는 Hidden Mode 로 접속 설정을 변경한다.
  2. adb, fastboot을 이용하여 명령어 전달
  3. playlpm 혹은 lpm 파일 변경

위의 방법 중에서 2는 컴퓨터를 이용해야 하니 귀찮았…. 아니다 밖에서 시간 남을 때 진행했기 때문에 컴퓨터를 쓸 수가 없었고 겔럭시 s의 경우 Hidden Mode에 해당 기능이 없었다.

그래서 3번을 선택했다. 사용한 툴은

 

Root Explorer : 구글 플레이

Notepad for Android : 구글 플레이

 

위의 두 툴을 사용하였다. 아래와 같은 순서를 따른다.

 

  1. Root Explorer를 이용하여 파일 시스템에 접근한다.
  2. /system 디렉토리로 이동한다.
  3. /system 디렉토리를 r/w 모드로 변경한다.
  4. /system/bin 디렉토리로 이동한다.
  5. playlpm 혹은 lpm 파일을 찾아서 playlpm.bak 또는 lpm.bak 으로 이름을 변경한다.
  6. Notepad for Android를 연다.
  7. 아래 명령어를 입력한다.

    #!/system/bin/sh
    /system/bin/reboot

  8. 저장한다.
  9. Root Explorer를 열어 SD 카드 디렉토리로 이동한다.
  10. 저장한 파일의 이름을 playlpm 혹은 lpm으로 변경한다.
  11. 해당 파일을 잘라서 /system/bin 디렉토리에 붙여넣는다.
  12. 권한과 소유주 설정을 백업해둔 파일과 동일하게 변경한다.

글로 써두면 굉장히 길어보이는 과정이지만 핸드폰으로 뚝딱 뚝딱 할 수 있다. 아무튼… 만약 위의 방법이 힘들거 같다고 한다면 쉽게 할 수 있는 방법으로 2번을 추천한다.

 

adb, fastboot을 이용하기

 

이렇게 하면 핸드폰 전원을 딱! 연결하자마자 안드로이드가 부팅되는 것을 확인할 수 있을것이다.

다음은 아마도 Tasker 사용법을 정리할듯 하다. 사실 이미 이 세팅은 완료한 상태고 심지어 배선도 완료한 상태라… 기억에 의존해서 쓰다보니 틀린 것도 있을 수 있지만 뭐… 대략적인 틀은 위와 같다고 할 수 있다.