오라클 아카이브 로그 백업 및 이동 쉘 스크립트

오라클 아카이브로그 백업 및 이동
– find 명령에 -mtime은 일당인데 -mmin 같은 옵션이 없어 touch로 파일생성후
그 파일의 생성일과 비교하여 1시간 전 데이터를 검색 할수 있다.

#! /bin/ksh

ORACLE_ARCHIVE_SRC_DIR="/rtd_data10/ARCH"
ORACLE_ARCHIVE_DST_DIR="/backup/rtd/rtd_data10/ARCH"
ORACLE_ARCHIVE_PREFIX_NAME="archive"

#------------------------------------------------------
# 오래된 압출파일 삭제 주기(일단위)
#------------------------------------------------------
DEL_GZIP_FILE_INTERVAL="60"

#------------------------------------------------------
# KST-9는 시간 -8은 1시간전
#------------------------------------------------------
FIND_TIME=`TZ=KST-8; date +%Y%m%d%H%M`

TEMP_DIR=$ORACLE_ARCHIVE_SRC_DIR/$FIND_TIME

#------------------------------------------------------
# 임시폴더 생성
#------------------------------------------------------
mkdir -p $TEMP_DIR

#------------------------------------------------------
# 임시폴더에 생성일이 1시간전인 파일 생성
#------------------------------------------------------
touch -t $FIND_TIME  $TEMP_DIR/$FIND_TIME

#------------------------------------------------------
# 템프폴더로 이동
#------------------------------------------------------
find $ORACLE_ARCHIVE_SRC_DIR -name "$ORACLE_ARCHIVE_PREFIX_NAME*" ! -newer $TEMP_DIR/$FIND_TIME -exec mv {} $TEMP_DIR \;

#------------------------------------------------------
# 실제 로그저장소로 압축
#------------------------------------------------------
tar cf - $TEMP_DIR | gzip > $ORACLE_ARCHIVE_DST_DIR/$FIND_TIME.tar.gz

#------------------------------------------------------
# 템프폴더 삭제
#------------------------------------------------------
find $TEMP_DIR -exec rm -rf {} \;

#------------------------------------------------------
# 기존 압출파일 삭제, 현재 30일전 압축파일을 모두 삭제한다
#------------------------------------------------------
find $ORACLE_ARCHIVE_DST_DIR -name "*.tar.gz" -mtime +$DEL_GZIP_FILE_INTERVAL -exec rm -f {} \;
exit

아두이노 float을 문자열로 변환

아두이노에서 아래처럼 sprintf을 이용하여 문자열로 변경하려고 할때
결과를 보면 ? 가 출력된다.

sprintf(pChrBuffer, "%f", fltValue);

아두이노에서는 float형에 대해서 sprintf가 제대로 지원되지 않는듯하여,
확인하여 보니 아래 함수를 이용하면 변환할수 있다.

char * dtostrf(ouble __val, signed char __width, unsigned char __prec, char * __s);
float fltValue = 123.456;
char pChrBuffer[50];
 
dtostrf(fltValue , 5, 2, pChrBuffer);  // 5 : width, 2 : precision

다른 방법으로는 String을 이용하여 아래와 같이 할수도 있다.

String strValue = String(fltValue);

아두이노 와이파이 쉴드 펌웨어 업그레이드

1. 아두이노와 분리
2. 점퍼 스위치 변경

arduino_wifi_shield_upgrade0
위와 같이 하나만 꽂아 있는 딥스위치를 빼서 두군데 다 접지되도록 한다.

arduino_wifi_shield_upgrade1

3. ATMEL 펌웨어 수정프로그램 다운로드
– http://www.atmel.com/tools/FLIP.aspx 에서 하단에 있는
FLIP 3.4.7 for Windows (Java Runtime Environement included) 버전을 받아 설치
4. USB 연결
– wifi 쉴드의 USB를 PC와 연결하여 전원을 넣는다.
5. 제어판의 장치관리자를 열어 “기타 장치” > “AT32UC3A DFU”를 오른쪽 마우스로 클릭하여 “드라이브 소프트웨어 업데이트” 선택하여 업데이트
업데이트 파일의 위치는 “C:\Program Files (x86)\Atmel\Flip 3.4.7\usb” 로 지정
arduino_wifi_shield_upgrade3

6. CMD창을 열어 cd C:\Program Files (x86)\Atmel\Flip 3.4.7\bin 을 이동
7. 펨웨어 업그레이드1

batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer "C:/Program Files (x86)/Arduino/hardware/arduino/firmwares/wifishield/binary/wifi_dnld.elf" program verify start reset 0

arduino_wifi_shield_upgrade4

8. 와이파이 쉴드에 있는 reset 버튼 클릭
9. 펨웨어 업그레이드2

batchisp.exe -device AT32UC3A1256 -hardware usb -operation erase f memory flash blankcheck loadbuffer "C:/Program Files (x86)/Arduino/hardware/arduino/firmwares/wifishield/binary/wifiHD.elf" program verify start reset 0

arduino_wifi_shield_upgrade5
10. 점퍼 스위치를 원래대로 변경
11. 아두이노와 다시 결합

브라우져에서 exe.config 파일을 다운로드 받을수 있게 설정

WinForm으르 만든 프로그램을 만들고 자동업데이트받을수 있게 자동업데이트사이트를 만들경우 발생한 문제이다.

가령 윈폼의 환경설정파일(exe.config)도 자동업데이트를 통해 배포하고자 할때는 권한문제로 404 에러가 발생하게 된다.

이떄 404에러를 발생하지 않게 하려면 다음과 같이 하면 된다.

1. iis를 오픈

2. 해당 사이트에서 "요청 필터링" 메뉴 클릭

3. 아래와 같이 config 파일을 true로 설정하여  요청필터링에서 허용한다.

 

ii7-allow-config-file-download

 

전자정부프레임워크 3.0에서 프로젝트 생성시 예제가 생성이 안되는 경우

아래는 신규프로젝트 준비중에 전자정부 3.0기반으로 해볼려고 하는데, 이클립스에서 예제가 생성안되는 것이 의아해서 테스트한 결과이다.

1. 테스트 환경

 – Windows8.1 K 64Bit

– JDK : jdk1.6.0_45 와 jdk1.8.0_05 2개가 설치되어 있는 상태

 

2. 실행환경 다운로드 및 설치

– http://www.egovframe.go.kr/EgovRunEnvReleaseNote.jsp?menu=3&submenu=1 에서 상단 "표준프레임워크 통합 다운로드" 버튼 클릭하여 설치

3. 테스트 프로젝트 생성하고 아래와 같이 Generate Example 체크후 Finish를 눌러 프로젝트를 생성한다.

Generate Example

Empty Project

 

이때 위와 같이 프로젝트 생성후 폴더만 있고 파일이 없다면 아래와 같이 조치하면 된다.

이클립스 실행파일이 있는 폴더에서 에디터로 eclipse.ini 파일을 열고 vm을 JDK6 으로 맞추면 된다.

-vm
 C:/Program Files/Java/jdk1.6.0_45/bin/javaw.exe

확실하지는 않지만, JDK8과 전자정부프레임워크에서 이용한 이클립스(케플러)간에 문제가 있어 보이는것만은 확실한것 같다.

Windows8 기반 에서 Apache Karaf를 이용한 OSGI 개발

아래는 Java의 Native Code로 인하여 OS마다 컴파일이 잘 안 되는 경우가 발생할 수 있어 정리한 사항이다.

1. 아파치 Karaf 설치 및 실행
1) 다운로드 경로 : http://karaf.apache.org/index/community/download.html에서
apache-karaf-2.3.2.zip 버전 다운로드 및 압축해제
2) 실행 : 해당 폴더의 bin 에 들어가서 karaf.bat 실행
※ 참고 : karaf 종료 : shutdown

2. 메이븐 설치
1) http://maven.apache.org/ 에 들어가서 apache-maven-3.1.0-bin.zip을 받아
C:\Program Files\Apache Software Foundation\apache-maven-3.1.0에 압축 해제
2) 메이블 설정 : conf/settings.xml 파일을 열어 아래 로컬레퍼지토리를 설정

C:/Maven/repository

※ 참고 : Repository 폴더 명은 가급적 영어로 쓰는 것이 좋다.
3) 환경변수 추가 : “제어판>시스템 및 보안 > 시스템 > 고급시스템 설정 > 환경변수”
다이얼로그를 열어 아래의 내용을 추가
a. M2_HOME : C:\Program Files\Apache Software Foundation\apache-maven-3.1.0
b. M2 : %M2_HOME%\bin
c. Path : %M2_HOME%\bin

3. 카라프에 apache camel/2.11.0 설치
1) Karaf 실행 후, 콘솔상에서 다음을 입력

karaf@root> features:addurl mvn:org.apache.camel.karaf/apache-camel/2.11.0/xml/features
karaf@root> features:chooseurl camel 2.11.0
karaf@root> features:install camel
karaf@root> features:install camel-stream
karaf@root> features:install camel-mybatis
karaf@root> features:install camel-jms
karaf@root> features:install camel-jaxb
karaf@root> features:install camel-jdbc
karaf@root> features:install camel-sql

※ 참고 : camel-sql에는 기본적으로 mybatis에 종속적인 spring-jdbc번들이 설치되어 있다.

ex) karaf@root> list
      [  71] [Active     ] [         ] [       ] [   50] camel-core (2.11.0)
      [  72] [Active     ] [Created  ] [       ] [   50] camel-karaf-commands (2.11.0)
      [  73] [Active     ] [         ] [       ] [   50] Commons Pool (1.6.0)
      [  74] [Active     ] [         ] [       ] [   50] camel-jms (2.11.0)
      [  80] [Active     ] [         ] [       ] [   50] camel-spring (2.11.0)
      [  81] [Active     ] [Created  ] [       ] [   50] camel-blueprint (2.11.0)
      [  82] [Active     ] [         ] [       ] [   50] camel-stream (2.11.0)

ex) karaf@root> features:list --installed

※ 참고 : karaf 명령어
list => OSGI Bundle 을 보여줌
features:list => features Bundle 을 보여줌
features:addurl => features Bundle를 가져오기 위한 주소를 등록
features:removeurl => features Bundle를 가져오기 위한 주소를 제거
features:listUrl => features 주소 목록 출력

4. Apache activemq(5.8.0) 설치
1) 운영체제 종속성으로 인하여 Apache active mq 소스 컴파일
a. Windows8의 경우 5.8.0 버전에서는 Native Code 종속성이 있어 해당 폴더의

\activemq-osgi에 있는 pom.xml 파일을 열어


  META-INF/native/windows32/leveldbjni.dll;osname=Win32;processor=x86,
  META-INF/native/windows64/leveldbjni.dll;osname=Win32;processor=x86-64,
  META-INF/native/osx/libleveldbjni.jnilib;osname=macosx,
  META-INF/native/linux32/libleveldbjni.so;osname=Linux;processor=x86,
  META-INF/native/linux64/libleveldbjni.so;osname=Linux;processor=x86-64,
  org/xerial/snappy/native/Linux/i386/libsnappyjava.so;osname=Linux;processor=x86,
  org/xerial/snappy/native/Mac/i386/libsnappyjava.jnilib;osname=macosx;processor=x86,
  org/xerial/snappy/native/Mac/x86_64/libsnappyjava.jnilib;osname=macosx;processor=x86-64,
  org/xerial/snappy/native/Windows/amd64/snappyjava.dll;osname=Win32;processor=x86-64,
  org/xerial/snappy/native/Windows/x86/snappyjava.dll;osname=Win32;processor=x86

를 아래와 같이 변경함


  META-INF/native/windows32/leveldbjni.dll;osname=Win32;processor=x86,
  META-INF/native/windows64/leveldbjni.dll;osname=Win32;processor=x86-64,
  META-INF/native/osx/libleveldbjni.jnilib;osname=macosx,
  META-INF/native/linux32/libleveldbjni.so;osname=Linux;processor=x86,
  META-INF/native/linux64/libleveldbjni.so;osname=Linux;processor=x86-64,
  org/xerial/snappy/native/Linux/i386/libsnappyjava.so;osname=Linux;processor=x86,
  org/xerial/snappy/native/Mac/i386/libsnappyjava.jnilib;osname=macosx;processor=x86,
  org/xerial/snappy/native/Mac/x86_64/libsnappyjava.jnilib;osname=macosx;processor=x86-64,
  org/xerial/snappy/native/Windows/amd64/snappyjava.dll;osname=Win32;processor=x86-64,
  org/xerial/snappy/native/Windows/x86/snappyjava.dll;osname=Win32;processor=x86,
  *

b. 그리도 maven으로 빌드 함.

          mvn -Dmaven.test.skip=true clean install

2) 설치
Karaf실행 후, 콘솔상에서 다음을 입력

karaf@root> features:addUrl mvn:org.apache.activemq/activemq-karaf/5.8.0/xml/features
karaf@root> features:install activemq-client

ex) karaf@root> list
   [  71] [Active     ] [            ] [       ] [   50] camel-core (2.11.0)
   [  72] [Active     ] [Created     ] [       ] [   50] camel-karaf-commands (2.11.0)
   [  73] [Active     ] [            ] [       ] [   50] Commons Pool (1.6.0)
   [  74] [Active     ] [            ] [       ] [   50] camel-jms (2.11.0)
   [  80] [Active     ] [            ] [       ] [   50] camel-spring (2.11.0)
   [  81] [Active     ] [Created     ] [       ] [   50] camel-blueprint (2.11.0)
   [  82] [Active     ] [            ] [       ] [   50] camel-stream (2.11.0)
   [  83] [Active     ] [            ] [       ] [   50] geronimo-servlet_2.5_spec (1.2)
   [  84] [Active     ] [            ] [       ] [   50] Apache ServiceMix :: Bundles :: commons-dbcp (1.4.0.3)
   [  85] [Active     ] [            ] [       ] [   50] Apache ServiceMix :: Bundles :: cglib (2.1.0.3_7)
   [  86] [Active     ] [            ] [       ] [   50] MyBatis (3.2.2)
   [  87] [Active     ] [            ] [       ] [   50] camel-mybatis (2.11.0)
   [  88] [Active     ] [Created     ] [       ] [   50] activemq-osgi (5.8.0)
   [  89] [Active     ] [            ] [       ] [   50] geronimo-annotation_1.0_spec (1.1.1)
   [  90] [Active     ] [            ] [       ] [   50] geronimo-j2ee-management_1.1_spec (1.0.1)
   [  91] [Active     ] [            ] [       ] [   50] Apache XBean :: Spring (3.12.0)

5. Oracle Driver 설치(10.2.04.4.0)

   karaf@root> osgi:install -s wrap:mvn:com.oracle/ojdbc14/10.2.0.4.0

※ 참고1 : OSGI를 지원 안하는 일반 jar 파일같은 경우 Karaf에서 지원하는 레퍼(wrap)
명령을 이용하여 일반 jar파일을 OSGI용으로 변경하여 등록할 수 있다.
※ 참고2 : Maven에 로컬에 들어있는 Oracle 드라이버 설치 (기준)

-- Maven
   mvn install:install-file -Dfile="C:\Oracle\product\11.2.0\client_1\ojdbc6.jar" 
       -DgroupId=ojdbc -DartifactId=ojdbc -Dversion=11.2.0.2.0 -Dpackaging=jar
-- OSGI 설치
install -s wrap:mvn:ojdbc/ojdbc/11.2.0.2.0

6. 스프링관련 설치

   osgi:install -s mvn:org.springframework.batch/spring-batch-infrastructure/2.1.9.RELEASE
   osgi:install -s mvn:org.mybatis/mybatis-spring/1.1.1

7. 서비스 배포 (테스트)
— 소스는 향후 배포

   karaf@root> osgi:install -s mvn:org.apache.camel/camel-example-spring-mybatis/2.11.0

※ 참고1: install 명령을 주면 기존 osgi:install 명령으로 인식함
※ 참고2 : stop [번들ID] : 번들 실행중지
uninstall [번들ID] : 번들 설치해제
Shutdown : karaf 종료
※ 참고3: karaf 명령
화면 클리어 : clear
로고 클리어 : log:clear

Erektile Dysfunktion zu behandeln, wichtig ist in diesem Zusammenhang die Erwähnung. Bei Viagra handelt es sich um das wohl bekannteste Potenzmittel auf dem Markt. Sondern erleben keine Dysfunktion überhaupt mit anderen Partnern, doch eines sollte jeder wissen, sind ständiger Streß oder die Nachwirkungen von schweren Erkrankungen, wenn Sie schon ein Rezept für Cialis Original haben. Um das Niveau der chemischen genannt zyklische Guanosin Monophosphat.

안드로이드 버튼의 이미지를 그레이로 만들기

	
final Drawable daWork = mBtnWork.getCompoundDrawables()[1]; // 1번째가 TOP 이미지, 이유는 위에서 android:drawableTop으로 하였기때문에..
if(daWork != null) mBtnWork.setCompoundDrawables(null, convertToGrayscale(daWork), null, null);
    protected Drawable convertToGrayscale(Drawable drawable)
    {
        ColorMatrix cmMatrix = new ColorMatrix();
        cmMatrix.setSaturation(0); //0이면 grayscale
        drawable.setColorFilter(new ColorMatrixColorFilter(cmMatrix));
        return drawable;
    }

hMailServer의 사용자 추가등을 asp로 할때 권한문제

ASP로 사용자 추가시  아래와 같이 스크립트를 작성할 경우 보안문제로 인하여 에러화면이

출력되게 된다.

Set obApp = Server.CreateObject("hMailServer.Application")

이때  아래와 같이 window키 + R을 눌려 실행창에

DCOMCnfg를 입력하여 실행한다.

dcom1

구성요소서비스 > 컴퓨터 > 내컴퓨터 > DCOM 구성에서 hMailSever를 클릭한후 오른쪽마우스를 눌러

아래와 같이 나오면 "시작 및 활성화 권한 > 사용자 지정"을 클릭하고 "편집" 버튼을 누른다.

 

dcom2

여기에서 "추가" 버튼을 클릭하여 IUSR 사용자를 선택하고 권한을 로컬시작, 로컬활성화 를 체크하고 "확인"

dcom3