업무 중 TIP

*원하는 리비전 체크아웃하기
svn co --revision 5469 http://svn.asdf.com:7777/svn/product/trunk before_performance

검색된 다중 프로세스 pid들 킬하기
ps -ef | grep jiwoong | grep java | awk '{print $2}' | xargs kill

리눅스 포트로 프로세스 확인
netstat -ntlp | grep :포트번호

.svn 관련 파일 삭제
linux : find ./ -name ".svn" | xargs rm -rf
aix : find ./ -name "*svn*" | xargs rm -rf

** 원하는 날짜 파일 삭제
ls -al | grep 2007- | xargs rm -rf

-ctags 만들기
find . -name "*.[ch]" | xargs ctags -a

-linux 명령어 반복 n 초마다
watch -n 1 "ps -ef | grep keyd"


네트워크(외부망) 차단 pc에서 원격테스크톱 접속시 느린 문제 해결
- 원인 : 인증서 유효성 검사를 위해 외부망 접속을 시도

실행 -> gpedit.msc 실행 후 아래 스탭 적용
1.로컬 그룹 정책 편집기에서 그룹 정책을 만들거나 기존 그룹 정책을 변경합니다.
2.로컬 그룹 정책 편집기의 컴퓨터 구성 노드에서 정책을 두 번 클릭합니다.
3.Windows 설정을 두 번 클릭하고, 보안 설정을 두 번 클릭한 다음 공개 키 정책을 두 번 클릭합니다.
4.세부 정보 창에서 인증서 경로 유효성 검사 설정을 두 번 클릭합니다.
5.네트워크 검색 탭을 클릭하고 이 정책 설정 정의를 선택한 다음 Microsoft 루트 인증서 프로그램에서 인증서 자동 업데이트(권장) 확인란을 선택 취소합니다.
6.확인을 클릭한 다음 로컬 그룹 정책 편집기를 닫습니다.


**oracle 12c 계정생성 이슈
12c 부터는 공통 사용자 생성시 c##을 붙여주어야 하나
alter session set "_ORACLE_SCRIPT"=true; 설정을 해주면 
이전 버전 처럼 추가 가능

create user test identified by test;
grant connect, resource, dba to test;

**oracle 설치 실패 후 삭제시 (linux) 아래사항 확인
rm -rf /etc/oraInst.loc
rm -f /etc/oratab
/usr/local/bin rm -rf dbhome
 rm -rf coraenv
 rm -rf oraenv
/tmp 폴더에 Ora* 삭제
/etc/profile 또는 /home/oracle/.bash_profile

**oracle 패치 히스토리 확인
DBA_REGISTRY_SQLPATCH 테이블 조회

** oracle 캐릭터셋
select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
update props$ set value$='KO16KSC5601' where name='NLS_CHARACTERSET';
프로파일 : NS_LANG 확인

** os 캐릭터셋
locale
locale -a

**서버 장비 모델명 확인
AIX 
prtconf | grep Model(한글일 경우'모델')
prtconf 시 대부분의 정보 확인 가능

lsdev -Cc disk (디스크 확인)
bootinfo -s hdisk0~9 (해당 디스크 용량 mega 단위)

HP-UX
machinfo 기본 정보 확인
ioscan -funNC disk (디스크 확인)
ioscan -m dsf (레거시 dsf 확인)
diskinfo (legacy dsf)

Linux
모델명 : dmidecode | grep "Product Name:"
os 명 : grep . /etc/*-release
cpu : cat /proc/cpuinfo | grep "model name"
mem : free -h
disk : fdisk -l
폴더별 디스크 사용량 : du -h --max-depth=1
thread, pid 갯수 /proc/sys/kernel/threads-max, pid_max


git 명령어!
git reset --hard HEAD~ 
내가 commit 한 시점으로 로컬 디스크내 파일들을 되돌린다(?)
commit 이 없다면 clone 한 상태로 돌려놓을 것으로 예상된다.

sunos 디렉토리별 용량확인
du -sh /var/*


** SecureCRT 
: 자동 종료 처리 
 옵션 -> 터미널 -> Anti-idle -> Send protocol NO-OP 체크


** oracle 재기동

lsntctl stop
shutdown immediate
startup
lsnrctl start
tnsping [server ip]
startup force (강제종료 후 기동이 정상적으로 안될시 사용)

** oracle 로딩된 클래스 확인
SQL> SELECT dbms_java.longname(object_name) FROM user_objects WHERE object_name like '%asdf%';

DBMS_JAVA.LONGNAME(OBJECT_NAME)
--------------------------------------------------------------------------------
test/asdf

참고 :https://docs.oracle.com/cd/B10501_01/java.920/a96659/02_load.htm


**glibc 버전확인
getconf -a | grep libc
ldd --version


**시스템에 설치된 패키지 정보확인
rpm -qa | grep <name>

**rpm 설치
rpm -ivh 파일명


** gateway ip 확인
route
default gateway 확인

** dns ip확인
nslookup server

** linux 반복문
watch 명령어 사용
watch -n 5 ls -al (5 초마다 ls -al 수행)

** 특정 모듈 물고 있는 프로세스 pid 목록
lsof | grep libProductName_v1.0.0.so | awk '{print $2}' | sort | uniq

** 리눅스 프로세스 트리, 물고있는 so 확인


** aix 반복
while true; do ls -al; sleep 1; done;

** /bin/sh^M: bad interpreter 제거
perl -pi -e 's/\015//g' *.sh

** linux top 사용시 원하는 커맨드만 확인
top -c -p $(pgrep -d',' -f string_to_match_in_cmd_line)

**리눅스 장비 시간 변경(세션만??)
date -s "2018-11-08 17:44:00"
date -s "10:30:00"

** aix 모듈 용량 줄이기
strip -X64  xxxx.so

** aix process memory check
ps gv | head -n 1; ps gv| egrep -v "RSS" | sort +6b -7 -n -r | grep "./log*"
반복
while true; do ps gv | head -n 1; ps gv| egrep -v "RSS" | sort +6b -7 -n -r | grep "./log*"; sleep 1; done;

**CentOS network 7d이상관련
systemctl disable NetworkManager
service network restart

** 오라클 인풋값 변경하면서 더미데이터 생성
CREATE TABLE info AS
SELECT  level AS id,'851234' || ROUND(DBMS_RANDOM.VALUE(1, 1000000),0) AS JUMIN, '010' || SUBSTR('000000', 1, 6 - LENGTH(TRIM(LEVEL))) as phone
FROM    dual
CONNECT BY level <= 100000;

========================================================================
SELECT  'ID' || ROUND(DBMS_RANDOM.VALUE(1000, 9999),0) AS ID,
ROUND(DBMS_RANDOM.VALUE(100000, 999999),0)||'-'||ROUND(DBMS_RANDOM.VALUE(1000000, 9999999),0) AS JUMIN,
        '010'|| ROUND(DBMS_RANDOM.VALUE(10000000, 99999999),0) AS PHONE,
        DBMS_RANDOM.STRING('L',8)||'@test.com' AS EMAIL 
FROM  dual CONNECT BY level < 10;
========================================================================

더미 생성시 에러 발생할 경우
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 1024M;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 2048M;

** 대량건 테스트
SELECT  func(level) from dual CONNECT BY level <= 10000;

** oracle 오라클 sqlplus 출력 생략
set termout off
or 
set echo off

**쿼리 진행 시간 확인
set timing on;

** oracle memory 정보
select * from v$sgainfo;

** DB 부하 테스트
https://www.sten.or.kr/club/club_main.php?cmd=board&cb_id=cb_Jmeter&wr_id=302
 jmeter로 db 부하 발생

** oracle trace 파일 위치
11g : SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File';

show parameter background_dump_dest


** 컴파일 옴션
gcc 옵션에 "-O0 -ggdb3 -fno-omit-frame-pointer -fno-inline-functions" 


** 리눅스에서 압축 패스워드
zip -P "암호" 압축파일명.zip "압축할 대상"
unzip -P "암호" 압축파일명.zip "압축할 대상"


** 리눅스 특정 문자열 찾기 + 파일 생성일 확인
find . -mmin +23 | xargs grep 문자열
(mmin은 분단위 +시간 이후 생성 -시간 이내 생성된 파일)


** 리눅스 mv/cp시 년월일_시분초 붙이기
cp test_.log test_$(date '+%y%m%d_%H:%M:%S').log
mv libProductName.so libProductName.so_$(date '+%y%m%d_%H:%M:%S')

** 리눅스에서 원하는 문자열을 포함한 파일의 상세정보(권한/날짜/시간) 출력
grep -rl "ORA-07445" ./ | xargs ls -al

** 리눅스 linux 방화벽 firewall
외부에서 접근이 안될 때는
service iptables stop 
service firewalld stop 수행

vi /etc/selinux/config
vi /etc/sysconfig/selinux
SELINUX=disabled
reboot

**  프로세스가 느리게 동작할 때 확인 참고
sunos
truss 프로세스 명
(정확한 부분은 확인하기 어려우나 printf 등을 이용해 해당 지점을 유추할 수 있음)

** bad interpreter 에러
vi 로 열어도 안보일 떄 vi -b 파일명

+ Recent posts