aws ec2 인스턴스 이메일 관련 참고사항.

ec2 인스턴스는 기본적으로 25 포트가 전부 제한이 걸려 있으므로,

메일을 보내기 위해서는 ses서비스를 이용하거나

gmail 등을 이용해서 보내야 한다.

혹은,

https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

에서 제한을 없애달라고 요청을 할 수 있다.

상당히 오래 걸리는듯 하다.

Tomcat server clustering with apache

톰캣 서버 설치 및 클러스터링

일단 java를 설치한다.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer oracle-java8-set-default

만약 여러개 설치 된 경우엔

sudo update-alternatives –config java

이걸로 디폴트를 잡아주면 됨.

 

tomcat을 받아서 압축을 풀어놓고, 클러스터링 할 만큼 복사 한다.

cp tomcat9 ctest1
cp tomcat9 ctest2

2개를 복사한 후 ctest(*) 폴더안에 conf를 제외한 나머지를 삭제하고 tomcat9에 있는 폴더로 심볼릭링크를 생성한다.

ln -s ../tomcat9/bin
ln -s ../tomcat9/lib

이런식으로. 그리고 conf를 수정한다.

<?xml version=’1.0′ encoding=’utf-8′?>
<Server port=”8105″ shutdown=”SHUTDOWN”>
<Listener className=”org.apache.catalina.startup.VersionLoggerListener” />
<Listener className=”org.apache.catalina.core.JreMemoryLeakPreventionListener” />
<Listener className=”org.apache.catalina.mbeans.GlobalResourcesLifecycleListener” />
<Listener className=”org.apache.catalina.core.ThreadLocalLeakPreventionListener” />

<GlobalNamingResources>
<Environment name=”simpleValue” type=”java.lang.Integer” value=”30″ />
<Resource name=”UserDatabase” auth=”Container”
type=”org.apache.catalina.UserDatabase”
description=”User database that can be updated and saved”
factory=”org.apache.catalina.users.MemoryUserDatabaseFactory”
pathname=”conf/tomcat-users.xml” />
</GlobalNamingResources>

<Service name=”Catalina”>
<Connector port=”8109″ protocol=”AJP/1.3″ address=”0.0.0.0″ />
<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”tomcatA”>
<Cluster className=”org.apache.catalina.ha.tcp.SimpleTcpCluster” />
<Realm className=”org.apache.catalina.realm.LockOutRealm”>
<Realm className=”org.apache.catalina.realm.UserDatabaseRealm”
resourceName=”UserDatabase”/>
</Realm>
<Host name=”localhost” appBase=”/home/tomcat/www/”
unpackWARs=”true” autoDeploy=”true” xmlValidation=”false” xmlNamespaceAware=”false”>
<Context path=” docBase=’ROOT’ debug=’0′ reloadable=’true’ />
<Alias>domain</Alias>
<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
prefix=”localhost_access_log” suffix=”.txt”
pattern=”%h %l %u %t &quot;%r&quot; %s %b” />
</Host>
</Engine>
</Service>
</Server>

이런식으로 세팅을 한다.

ctest1과 2의 차이는 들여쓰기가 좆같지만 잘 보면 jvmRoute가 있다. 그 부분을 tomcatA와 tomcatB로 다르게 설정해준다.

저걸로 아파치가 두개의 톰캣을 구분한다.

그리고  server port와 connector port도 서로 다르다. 잘 알아서 수정하자.

그리고 상위 폴더로 가서 cat >> start.sh 를 해서 스크립트를 작성한다.

#!/bin/sh
./ctest1/bin/startup.sh
./ctest2/bin/startup.sh

cat >> shutdown.sh 으로 하나 더

#!/bin/sh
./ctest1/bin/shutdown.sh
./ctest2/bin/shutdown.sh

앞으로는 동시에 실행하고 중지하기 편하다.

이제 아파치를 설정할 차례다.  mod-jk를 설치해준다.

apt-get install libapache2-mod-jk

설치하고 enable 시켜준다. a2enmod jk

그리고나서 /etc/libapache2-mod-jk/workers.properties 를 수정해준다.

worker.tomcatA.port= 아까 수정한 포트번호
worker.tomcatA.host=localhost
worker.tomcatA.type=ajp13
worker.tomcatA.lbfactor=1

B도 마찬가지로 해주고.

worker.loadbalancer.balance_workers=tomcatA, tomcatB 를 넣어준다.

그리고 아파치 sites-enable에서 버추어호스트 파일을 수정한다.

JkMount /*.jsp loadbalancer 를 넣어주면

.jsp 파일들은 톰캣으로 전달하고 라운드 로빈 방식으로 A나 B로 넘어가는데

기본설정으로는 번갈아가면서 왔다갔다 하는게 아니라 한번 정해지면 세션이 바뀌기전까지는 해당 서버로만 연결된다.

혹시 틀린 부분 있으면 댓글로 알려주셈.

일단 난 이렇게 설정하고 문제 없이 쓰고 있긴 한데 워낙 오래전에 설정해놓고 글을 남기는거라

빼먹고 안쓴 부분이 있을지 모름.

민트리눅스 메뉴 편집하기.

시작메뉴를 편집하는 항목을 제어판에서 아무리 찾아도 없었는데,
그냥 패널의 메뉴버튼을 우클릭해서 설정에 들어간 후
메뉴 탭으로 이동한 다음 메뉴 편집기 열기를 하면 된다..

-_-

시벌.

[Linux] 디스크 사용현황 모니터링

디스크 사용량을 알고 싶을 때 사용하는 프로그램

dstat 을 사용하면 현재 I/O 사용현황을 알 수 있다.

dstat --disk-util --disk-tps -p -g --top-io-adv

현재 가장 높은 점유율을 가지고 있는 프로세스도 알 수 있고,

man  페이지를 확인하거나 옵션을 확인해서

다른 기능을 사용할 수도 있긴 하지만,

내가 주로 사용하는건 프로세스별 사용률.

[Linux] 설치되어있는 패키지를 용량순으로 정렬해서 출력.

하드디스크가 모자랄때!

 

서버 시스템 혹은 데스크탑에서 안쓰는 패키지중 용량이 큰 것을 제거하고 싶을 때가 있다.

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n

설치된 패키지를 용량이 작은 순서로 정렬해서 출력한다.

간단하게 검색만 하기 위해선

dpkg -l | grep “패키지명”

으로 찾을 수 있다.

 

이 후 제거를 하기 위해서는 apt-get purge 패키지명 을 써주면 삭제가 된다.

apt-get autoremove

apt-get autoclean

apt-get clean

등도

Linux 전원관리 패키지 tlp

리눅스에서는 전원관리가 윈도우나 맥에 비해 현저히 성능이 떨어진다.
하지만 tlp 라는 패키지를 설치하면 이를 해결할 수 있다.

먼저 apt-get tlp tlp-rdw 를 해서 패키지를 설치한다.

그리고 tlp start 를 하면 시작되며, 부팅 후 자동으로 실행 된다.

/etc/default/tlp 를 수정해서 원하는대로 설정을 변경할 수 있다.

사람들이 사용해보니 윈도우나 맥 못지 않은 배터리 사용량을 보여줬다고 한다.

[Linux] find를 이용해서 특정기간내의 파일을 찾아보자.

일년치 이미지 파일들이 있다.

이 파일들을 분기 별로 분류를 하고자 한다.

사실 내 경우엔 파일명 앞부분이 연도월일시간 순으로 되어 있어서 단순히 

cp 201704* 이런식으로 복사가 가능하긴 하다. 

하지만 그렇지 않은 경우를 위해 메모해둔다.

우선, 파일을 두개 생성한다. 

시작일의 기준이 될 파일과 마지막일의 기준이 될 파일이다.

touch -t 201703010000 start

touch -t 201704010000 end

이와같이 파일을 두개 생성했다.

그리고 find를 이용해서 복사 혹은 이동 시킨다.

find ./2017 -type f -newer start ! -newer end -exec cp {} ./2017backup/ ;

이렇게 하면 3월내의 파일들이 복사 된다.

범위가 아닌 어느 특정일 기준으로 하기 위해선 -newer start 하나만 해주면 3월 1일 이후의 모든 파일을 복사하게 된다.

리눅스 설치 후 해야할 것들 메모.

회사 컴퓨터 리눅스 설치 후 필요한 것들 메모

(민트리눅스 패키지인 경우를 기준)

– chrome 설치

– eclipse 설치

– subclipse 설치

– dropbox 설치

– filezilla 설치

– telegram 설치

– putty 설치

– tomcat서버 설정

– sublime text 설치

이후 각각 세부적인 설정 하고나면 완료.

리눅스에서 크롬 창 리사이즈 시 프리징.

리눅스 환경에서 크롬을 설치했는데, 

창을 리사이즈 할때마다 죽어버렸다. 아예 키보드까지 먹통이 되버려서 강제로 리부팅을 해야만 했다.

원인을 찾아봤는데 아무래도 nvidia 그래픽카드 드라이버 문제인듯 하다.

내 경우에는 nvidia 드라이버를 최신으로 교체하고나니 문제가 해결되었다.

리눅스에서 pyfa 실행하기.

파이선으로 만들어진 이브온라인 피팅 툴을 사용하기 위해서는 python 이 설치되어 있어야 한다.

그 외 wxPython 2.8 이상 그리고 sqlAlchemy, dateutil, matplotlib, requests 가 필요하다.

먼저 pyfa를 받은 후 실행해보면 없는 라이브러리를 알려준다.

wxPython이 없는 경우 설치를 해보자.

apt-get install python-wxgtk3.0  으로 설치 한다.

그리고 그 외 라이브러리를 설치하려면 간단하게 easy_install을 사용하면 된다.

아직 해당 패키지가 없다면 저것도 설치해주면 된다.

apt-get install python_setuptools 

위의 패키지 설치가 끝나면 라이브러리를 하나씩 받아주면 된다.

easy_install sqlalchemy

easy_install dateutil

easy_install matplotlib

easy_install requests

설치가 다 되면, pyfa를 실행한다.