Tag Archives: Script

Groovy를 터미널 스크립트로 사용하기

개인적으로 Groovy의 문법이 맘에들어서 Java 프로젝트에서 유닛테스트를 할 때라던가 많이 사용하는데
(Kotlin 프로젝트에는 보통 코틀린을 사용…)

새로운 기능을 몇 가지 발견해서 연동테스트의 스크립트 언어로 사용하려고 찾아봤다.

groovy의 grapes(@Grap)을 사용하면 개별 파일에서 의존성 관리가 된다던가
스크립트 언어로 쓸 수 있는 기능을 많이 만들어놓은 것 같다.

그런데 몇가지 실망한 포인트가…

  • Groovy 파일간에 import가 되지 않는다던가
  • @Grapes를 파일에 선언 해 놨는데 이걸 자동으로 임포트를 하지 않는 문제…
  • 클래스패스 설정을 할 때 jar파일을 사용해야하는 문제

그럼 … 못쓰겠군.

연동테스트 스크립트는 파이선이나 노드로 해야겠다.

그루비의 용도는

딱.

JVM에서 다이내믹하게 로딩해서 쓸 수 있는 스크립트 언어. 태생이 그렇기도 하고…
DSL형태를 만들기 쉽고


Script:DDNS로 연결된 도메인 IP에 대해 iptables포트 열기

출처 : http://unix.stackexchange.com/questions/91701/ufw-allow-traffic-only-from-a-domain-with-dynamic-ip-address
IP테이블에서 사용하는 방법

#!/bin/bash
#allow a dyndns name

HOSTNAME=HOST_NAME_HERE
LOGFILE=LOGFILE_NAME_HERE

Current_IP=$(host $HOSTNAME | cut -f4 -d' ')

if [ $LOGFILE = "" ] ; then
  iptables -I INPUT -i eth1 -s $Current_IP -j ACCEPT
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo IP address has not changed
  else
    iptables -D INPUT -i eth1 -s $Old_IP -j ACCEPT
    iptables -I INPUT -i eth1 -s $Current_IP -j ACCEPT
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi

UFW에서 사용하는 스크립트.. 위의 쉘스크립트에서 명령어만 바꿔줬다.
UFW에서 도메인을 기반으로 등록해주는 기능은 없다. 그럴 수 밖에 없는게… 접속이 들어올 때 마다 도메인의 IP를 확인할수도없는 노릇이니까

#!/bin/bash
#allow a dyndns name

HOSTNAME=HOST_NAME_HERE
LOGFILE=LOGFILE_NAME_HERE

Current_IP=$(host $HOSTNAME | cut -f4 -d' ')

if [ $LOGFILE = "" ] ; then
  ufw allow from $Current_IP
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo IP address has not changed
  else
    ufw delete allow from $Old_IP
    ufw allow from $Current_IP
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi