이 세상에 하나는 남기고 가자

세상에 필요한 소스코드 한줄 남기고 가자

리눅스 명령어 모음(Centos 6)

아사마루

아래의 내용은 개인적으로 간혹 사용이 필요한 내용을 기록해 두기 위한 것으로 잘못된 정보일 수 있으니 참고만 하기 바란다.

시스템 로그 삭제

/etc/init.d/rsyslog restart

sl 인증서 + apache 시작시 비밀번호 입력 제거

openssl rsa -in key.pem -out key.nopw.pem

ssh 접속자 강제 로그아웃

# 602 : userid
pkill -KILL -u 602

bash script에서 실행경로 구하기

cd ${0%/*} 2>/dev/null
echo $PWD/${0##*/}

서버 네트워크 상태 확인

netstat -an|grep ":80"|awk '/tcp/ {print $6}'|sort -nr| uniq -c

아파치 동시접속자 수 확인

netstat -anp | grep :80 | grep ESTAB | wc -l

권한 파일 찾기 / 바꾸기

# root 권한 파일 찾기
find . -uid 0

# chown 특정 사용자만 변경
chown web.usergroup * -R --from=root.root
chown --from=511 -R web account/

포트 강제로 죽이기

sudo fuser -k -n tcp 444

실행 결과 숨기기(stdout, stderr)

명력어 > /dev/null 2>&1

검색된 파일만 vi 열기

vi -p $(find .|grep ModuleLink|grep -v '.svn'|grep -v CZFramework)

내용 일괄변환

find . -type f -name *.php -exec perl -pi -e 's|\\CZ\\CZFramework|\\CZF|g' {} \;

ssh 비밀번호 없이 접속

local

ssh-keygen -t rsa
# scp /root/.ssh/id_rsa.pub root@[ip]:/root/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@[ip]

대상 서버(호스트)의 퍼미션

750 /home/admin/
700 /home/admin/.ssh/
600 /home/admin/.ssh/authorized_keys

배드블럭 검사

badblocks -v /dev/sda1

프로세스 실행경로 확인

# 프로세스 정보
ps ef
ps aux

# 프로세스 트리보기
pstree -aph

#프로세스 상세보기
lsof -P

아파치 : 모든 페이지 요청시 동일페이지 노출

RewriteEngine On
RewriteRule ^(.*)$ /target/index.html

Mysql 사용자 관리

패턴

grant all privileges on 디비명.테이블명 to 사용자@'접속지 주소' identified by '암호' (with grant option);

권한 생성

# 원격지에서 root로 접속하는 경우
grant all privileges on *.* to root identified by '암호' with grant option;

# '사용자'가 '암호'으로 모든 컴퓨터에서 모든 디비와 테이블에 접속하도록 허용
grant all privileges on *.* to 사용자 identified by '암호';

# '사용자'가 '암호'으로 localhost 에서 db1 디비의 table1에 접속하도록 허용
grant all privileges on root.db1 to 사용자@'localhost' identified by '암호';

# '사용자'가 '암호'으로 111.222.333.444 에서 db1 디비의 모든 테이블에 접속하도록 허용
grant all privileges on root.* to 사용자@'111.222.333.444' identified by '암호';

# '사용자'가 '암호'으로 111.222.333.0/24 에서 모든 디비와 테이블에 접속하도록 허용
grant all privileges on *.* to 사용자 @'111.222.333.%' identified by '암호';

권한 제거

revoke all on 디비명.테이블명 from 사용자;

권한 적용

# 모든 명령 후에 항상 아래 명령을 실행해야 실제로 적용된다.
flush privileges;

Connection 상태 확인하기

SHOW FULL PROCESSLIST;

Connection 수 확인하기

SHOW STATUS LIKE 'Threads_connected';

동작중인 Connection 수 확인하기

SHOW STATUS LIKE 'Threads_running';

Connection 상태 확인하기

SHOW FULL PROCESSLIST;
Comment