본문 바로가기

Study/SQLite

[sqlite] crontab, 권한

crontab

리눅스 스케쥴링 프로그램

윈도의 예약과 같다.

간단하게 등록해서 shell에서 실행해준다.

 

example)

* * * * * ls -al > /home/st/ls.log

* * * * * : 분,시,일,월,요일을 뜻함..

> 해당 명령어를 ~ 에 담아라

 

10 * * * * ls -al > /home/st/ls.log

매 10분마다 /home/st/ls.log 에 ls -al 리스트를 담아라.

 

스케쥴러 등록 시 

실행권한이 없으면 등록되지 않는다.

chmod 775 test.sh 입력..

 

* -rw-r--r--

r: read / w: write / e: exec

실행 권한을 주려면

3자리씩 끊어서

- : 디렉토리 여부 디렉토리이면 d

rwx : 파일 소유자의 권한

rwx : 파일 소유자 그룹의 권한

r-x : 기타 others 권한

 

실행하는 user와 권한이 맞아야 실행된다.

콘솔에서 실행하면 crontab에서 유저를 지정해 줄 수 있다.

 

이렇게 shell 파일 하나 생성해서 그 안에 sql을 실행할 수 있는 문장을 넣으면 sql query를 스케쥴링 가능하다.

sqlplus scott/tiger@nccj @exec.sql

이렇게 작성하면 sqlplus에 있는 exec.sql 이 실행된다.

 

오라클은 항상 오라클 권한이 있는 유저로 실행해야 한다.

root가 오라클 권한을 가지고 있으면 root도 가능하지만, 보통은 따로 생성하여 쓴다.

su - oracle 

오라클 유저로 로그인(유저 전환)

 

* sqlplus 실행

sqlpuls에서 shell로 가려면 !

다시 들어가려면 exit

명령어 히스토리는 방향키 위/아래 sql 파일을 하나 생성하여 실행..

 

* sqlplus에서 프로시져 실행방법

exec 프로시져명;

 

* 이전 쿼리 수정방법

vi 편집기 이용하여 ed(edit)

실행은 /

-로그찍는 테스트 프로시져 하나 생성(SP_TEST_001)

테스트 프로시져 실행이 되지 않을때,

SER SERVER OUTPUT ON; -> SET SERVEROUTPUT ON;

EXEC SP_TEST_001;

 

id 찾아보기

오라클 설치 디렉토리 모르면

echo %ORACLE_HOME

리눅스에서는 $ 윈도는 %%

 

sql을 스케쥴링 하려면

실행파일 .sh

쿼리파일 .sql:

두 파일이 다 필요하다

spool -> 가끔쓰인다

select 한 결과를 파일로 저장 할 수 있다.

대용량 데이터를 옴길 때 편리하다.

 

test.sql

SET SERVEROUTPUT ON;

SPOOL ON;

EXEC SP_TEST_001;

SELECT * FROM APT_INFO;

SPOOL OFF;

EXIT;

 

SET SERVEROUTPUT ON;

SPOOL /HOME/ORACLE/ZTEMP/log.out

EXEC SP_TEST_001;

SELECT * FROM APT_INFO;

SPOOL OFF;

EXIT;

 

SPOOL OFF를 잘 안하면 디스크 풀이 나서 사고가 난다..

 

다른 유저로 로그인.. conn 이용..

 

* sqloader 보기

ls -al sqlldr

man sqlldr

-rwxr-x--x 권한을 보면ㅇㄱㅎㅇㅀㅇㅀ

oc4j - oracle 4 java(WAS)

웹로직

WAS / tomcat

 

crontab 명령어

조회: crontab -l

수정: crontab -e

메뉴얼 보기: man crontab 

man 이란 명령어가 존재하는거고...

man 뒤에 프로그램 명을 치면 사용법을 볼수 있다.

해당 명령어에 대해 모르면 man 명령어 이용

 

vi 명령어

저장: w

종료: q

편집: vi

경로보기: pwd

ls -al = dir

 

명령어

. : 실행

ps: 프로세스 확인

ps -ef: 프로세스 전체 확인

ps -ef|grep oracle: 오라클에 해당하는 프로세스만 보기

du -k: 하위 디렉토리의 디스크 용량 확인

df -k: 전체 디스크 용량 확인

du -ks: 전체 사용량만 표시

rm -rf test.out testaql.out: out파일 삭제

c언어로 짜는 방식이 있지만,  아직까지도 이런 데이터를 많이 사용한다

 

리눅스 는  os 기 때문에 .. 조금씩...만 공부 하면 될듯.. xp 쓰듯이..

2>&1: 시스템이 로그를 캐치하는 것을 방지

.bash_profile

,bashrc

시작프로그램 같은 것인데, crontab에서는 실행이 안된다.

그래서 . bash_profile 파일을 실행하고,

cd..

ls..

 

@filename.sql -> .sql은 생략 가능

 

오라클 자체 내에서도 스케쥴러가 있지만, 오라클이 죽으면 스케쥴러도 같이 죽어버리기 때문에 잘 안쓴다.

WAS도 마찬가지~~

 

'Study > SQLite' 카테고리의 다른 글

[sqlite] sqlite3 설치  (0) 2019.05.21
[sqlite] SQLITE3에서 CSV IMPORT / EXPORT, SQL 파일 IMPORT / EXPORT  (0) 2019.05.21