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 |