2022년 4월 30일 토요일

TextMate에서 중복행 제거하기

요즘 access_log 파일 보면서 이상한 짓 하는 IP들 차단하는 소소한 취미생활을 시작하였다, 이러저러한 툴로 IP들을 TextMate에 모아둔 다음에 일괄 차단시키다보니 이 아이피들이 중복된건 아닐까 하는 점이 신경쓰였다.

엑셀이나 구글스프래드 시트에 넣고 조건부서식으로 봐도 되지만 번거롭다. 다행이 TextMate에서 중복행 제거 기능을 제공하고 있었다.

처음에는 라인 소팅만 되도 눈으로 훑어보면서 찾아내면 되겠거니 싶었는데 라인소팅도 가능했고, 중복 행 제거도 가능했고 라인소팅과 중복행 제거 동시처리도 가능했다.

Bundles → Text → Sorting → Remove Duplicates in Document 를 선택하면 중복행이 제거된다.

2022년 4월 27일 수요일

야간에 스텔스 차량 발견하면 경찰신고를...

며칠 전 야간에 전조등을 켜지 않고 운행하는 차량을 발견했다. 신호대기시에 바로 앞차 였는데 멈춰 있을 때는 제동등이 켜져 있어서 몰랐는데 출발하면서 보니 후방 미등과 번호판등이 모두 들어오지 않았다. 차들이 적당히 있었기에 계속 뒤 따라가면서 봐도 계속 켜지 않았고, 귀가 후 제차 신호조작불이행으로 스마트국민제보에 신고했다.

며칠 뒤에 처리결과가 왔는데 이러하다.

교통법규위반 신고를 하여 주셔서 감사드리며 처리결과를 답변 드리겠습니다. 야간에 전조등을 취명하지 않고 주행하는 차량은 음주운전 했을 가능성이 있고 교통사망사고가 발생할 위험성이 큰만큼 추후에는 현장에서 바로 112신고를 하시어 해당차량운전자를 상대로 현장출동 경찰관이 확인 할수 있도록 신고하여 주시면 감사하겠습니다. 귀하께서 제보해주신 영상자료를 확인한 결과, XXㅇXXXX 차량은 도로교통법 제37조 등화점등 조작 불이행 (범칙금 20,000원, 벌점 0점) 에 해당하는 사실을 확인하였습니다. 신고차량은 교통경찰업무관리시스템의 범법차량 관리대상으로 접수하였습니다. 위반자에 대해서는 교통법규위반사항을 고지하여 절차에 따라 처리될 수 있도록 하겠습니다.

신고 영상에는 해당 차량이 약 7킬로미터 구간을 전조등을 켜지 않고 주행하는 모습이 담겨 있었다. 담당 경찰관이 보기에 이런 환경의 도로를 전조등 안켜고 수킬로 주행하는 차량의 모습을 보고 단지 실수로 전조등을 켜지 않은 차량은 아닌거 같다는 느낌이 있었나보다.

사실 요즘은 전조등을 켜지 않아도 계기판에 조명이 들어오고 주간주행등도 밝기 때문에 시가지 구간에서는 전조등을 켜지 않은걸 운전자가 모를 수도 있는데. 만에 하나 이런 차량이 음주운전 차량일 수 있다는 가능성을 열어두고 다음부터는 유심히 살펴보고 신고할 예정이다.

2022년 4월 26일 화요일

아이폰에서 라이트세일 SSH 접속하기 & 웹서버 재시작

가끔 가다가 블로그 접속이 되지 않을 때가 있다. 이유는 모르겠고. Uptime Robot로 서버가 다운되면 알림이 오도록 해놔서 SSH 접속한 후에 sudo /opt/bitnami/ctlscript.sh restart 를 실행하면 수초내에 접속이 복구되긴하나 컴 앞에 있지 않을 때는 속수무책이었다. 이에, 아이폰으로 서버를 재시작하는 방법을 찾아 보았다.

  1. 터미널 앱 설치. termius 를 많이들 쓰는 것 같은데 설치해보니 WebSSH이 편해보였다.
  2. 왼쪽 위 톱니바퀴 아이콘을 눌러 설정으로 들어간다.
  3. SSH Keys 항목을 누른다.
  4. 오른쪽 위 [+] 아이콘을 누른다.
  5. import from File 을 선택하고 아이클라우드 드라이브로 들어간다.
  6. 다운받아 둔 pem 파일을 아이클라우드 드라이브에 넣는다. 미리 넣어두어도 OK.
  7. pem 파일을 선택하면 SSH Keys 에 자신의 pem 키파일이 등록된다.
  8. 첫화면 Servers 로 간 후에 오른쪽 위 [+] 를 누른다.
  9. 호스트에는 IP를, 유저명에는 bitnami (또는 적당한 이름)을 넣고 Private Key를 눌러서 갖고 있는 pem 파일을 선택한다.
  10. 추가된 서버를 누르면 바로 자신의 라이트세일 쉘에 SSH 접속.

문제는 여기서 sudo /opt/bitnami/ctlscript.sh restart 명령어를 입력해야 하는데, 길이도 길고 화면 글씨가 작아서 입력이 만만치 않다. alias 를 지정해보기로 합니다.

grep bitnami /etc/passwd (via)로 현재 쉘을 확인해보니 bash.

.bashrc를 적당한 편집기로 열어서 alias rstart sudo /opt/bitnami/ctlscript.sh restart 한줄을 추가하고 저장하고 나온 후 source .bashrc로 적용.

이제부터 아이폰으로 서버에 SSH 접속한 후 rstart 라고만 치면 웹서버를 재시작할 수 있게 되었다.

2022년 4월 19일 화요일

iTerm2로 라이트세일 ssh 접속하기

라이트세일 홈페이지에서 웹 SSH를 사용하다보니 로긴할 때마다 captcha 입력이 번거롭다. iterm2를 이용해서 접속하는 방법을 정리해둔다. iterm2가 설치되어 있고 비트나미 인스턴스 사용을 전제로...

  1. 서버 아이피를 알아둔다. https://lightsail.aws.amazon.com/ls/webapp/home/instances
  2. 라이트세일에서 키를 다운받거나 생성한다. https://lightsail.aws.amazon.com/ls/webapp/account/keys1
  3. 다운받은 키의 퍼미션을 변경한다. chmod 400 xxxx.pem
  4. iTerm2 > Preferences > Profiles 에서 왼쪽 판넬 아래쪽 +
  5. Name에 적당한 이름, Command 드롭다운 메뉴에서 Command선택하고 옆 텍스트 입력칸에 ssh -i /pem파일이 위치한 절대경로 bitnami@위 1번에서 확인한 IP 입력 (예: ssh -i /Users/hof/Documents/mykey.pem bitnami@192.168.0.1 )
  6. iTerm2 실행 > Profile > 위 5번에서 지정한 이름의 프로필 선택

2022년 4월 18일 월요일

사랑니 발치 (feat. 단대치대병원)

15년 전에 오른쪽 아래 사랑니 뽑은 이후 오늘은 오른쪽 윗 사랑니를 발치했다. 양치할 때 가끔씩 시린 느낌이 있었고, 지난 달엔 그쪽 부근에서 통증이 한번 있었다. 어차피 아래쪽 사랑니가 없었기에 저작기능을 할 수 없는 상태인데다가 맞닿은 어금니에 문제 생기지 않게 미리 발치하라는 이야기를 스케일링 하러 갈때마다 들어왔다.

동네 치과로 갈까 하다가 소심한 마음에, 단대치대병원 행. 처음에는 예방치과로 가라고 해서 진료 받았고, 여기서 상담 후 발치하기로 하고 구강악안면외과로 넘어 갔다. 5층이었는데 전망 좋은 편. ^^;

의료진의 감염병 감염 예방을 위한 검사를 해야한다며 아래 잇몸을 면봉으로 몇번 긁어 갔다. 잠시 후 입술 주변과 코까지 외부 소독 먼저 하고, 소독포 덮고 입안 내부도 소독하고 식염수로 헹구어 주었다. 다음 순서는 마취 주사를 치아 근처에 몇방 놨고, 윗쪽 입천장 쪽 맞을 때는 따끔했다. 견디기 어려울 정도는 아니고 '어허.. 뻐근하구만...' 정도? 마취가 잘 됐는지 이곳 저곳 눌러볼 때 한군데가 약간 시큰하다고 했더니 '더 마취해드릴게요' 하더니 한두방 더 놓았다. 이때는 따끔한 느낌도 없었다.

잠시 후 발치 시작하겠다며 의료진이 바뀌어 들어왔고 아~한 다음에 이를 몇번 흔듭니다. 어느 정도 힘으로 뽑을건지 가늠하는건가? 싶었는데 이때 뽑았던 것. 약간 뿌득 ~ 뿌득 하는 느낌이 있었는데 그게 발치하려고 도구로 힘 주는 거였나보다. 금세 마무리하고 거즈 물고 일어났다. 실제 발치는 1분 정도 걸린 듯.

수술 마치고 바로 마스크 쓰려고 하니 아까 입술 외부에 소독한 약제가 묻어있으니 먼저 닦아내야 한다며 파우더룸으로 안내했다. 세면대 3개가 마련되어 있었고, 거울보니 입가와 코까지 노란 약제가 묻어있었다. 가볍게 세수 한 후에 마스크 착용하고 퇴장.

약 처방은 세파메칠정(항생제)과 잘트론정(소염진통제)을 하루 3회 3일치를 처방받았고 아침용에는 가스티인씨알정(위장운동조절 및 진경제)이 한알씩 추가되었다.

대학병원이라 아마 인턴이나 레지턴트들이 검사,마취,발치 등에 참여했을텐데. 과정별로 역할을 분담해서 과정 시작때마다 지금부터 무엇을, 왜 할것이고 어떤 느낌이 들것인지를 친절하게 설명해주었다.

처음 예방치과 진료에는 1만원쯤 나왔고 발치 후에 다시 4만 얼마쯤 추가로 내고 나왔다. 여기에 약값 6100원.

15년전에도 그랬지만 사랑니 뽑히고 별 통증없는 체질인가보다. 현재 6시간 지났고 다행이 별 통증이나 붓기, 열감은 없다. 두어시간에 한번씩 얼음팩만 댔다가 뗐다가 하는 중이다.

2022년 4월 14일 목요일

과도하게 자주 접속하는 아이피 찾아내어 막기

access_log를 보면 웹서버에 자주 + 빠르게 재접속하는 아이피들이 있는데, 이걸 자동으로 찾아주는 명령이 있었다.

Deny Connections From Bots/Attackers Using Apache

cd /opt/bitnami/apache2/logs/
tail -n 10000 access_log | awk '{print $1}'| sort| uniq -c| sort -nr| head -n 10

-n 10000은 access_log의 마지막 10000줄에서 찾으라는 이야기이므로 accrss_log의 줄 길이에 따라 적당히 늘려주면 된다.

wc -l accress_log 로 해당 파일의 라인 수를 알 수 있다.

맨 뒤 head -n 10 은 가장 잦은 접근을 한 상위 10개를 뽑아 오는 것이니 이 또한 적당한 숫자를 지정한다.

실제로 뽑아내보니 상위 10개라 하더라도 전체를 차단해서는 안되었다. 1~6위까지는 어뷰징 아이피들이 맞았으나 7~10위는 검색엔진의 봇 이었기 때문이다. 상위 20개정도씩 찾아서 조회해봐야할텐데. 일괄적으로 IP목록 넣으면 어뷰징 아이피와 봇 아이피를 선별해주는 서비스가 있으면 좋겠다.

2022년 4월 4일 월요일

스마트국민제보에서 보이는 유령(?) 제보평가요청

스마트국민제보에 교통법규 위반 차량을 신고하고나면 얼마 후 처리결과가 나오고 이에 대해 평가를 하라는 안내메일이 온다. 서비스에 로그인 해도 평가할 항목이 있다는 안내창이 뜬다. 며칠전부터 평가할 항목이 있다고는 나오는데 정작 "제보평가목록"으로 들어가면 1. 아무 항목도 없거나 2. 실제 평가할 항목이 1개라면 안내창에는 2항목을 평가하라고 나온다. 즉, 실제 평가해야할 항목보다 1개 항목이 더 있다고 나오는 셈이다.

알고보니 오래전 신고 건이 아주 늦게 처리된 것이었다. "제보평가목록"으로 들어가면 기본 설정이 제보일 기준 최근 3개월까지만 해당하는 항목들이 나온다.

이 검색기간을 더 과거로 (3개월이나 6개월정도) 설정해서 검색해보면 새 항목이 보일 수 있다. 3개월보다 더 이전에 신고한 위반건인데 최근에 처리되었고, 오늘 기준으로 3개월 이내 위반건을 기본으로 보여주다보니 안내문에는 있고 목록에는 안보이는 현상이 생겼던 것.

어제 (2022년 4월 4일) 이런 식으로 검색해보니 2021년 12월 16일에 위반 및 신고한 건이 2022년 3월 27일에 처리되어 있었다.

해당 항목에 대한 평가를 마쳤더니 더 이상 유령메세지(?)는 나오지 않았다.