2010년 12월 25일 토요일

Linux 관련 명령어 모음

Netcat과 Tar를 이용한 대용량 파일 복사
--  파일 수신 장비 (혹시, nc 사용에 문제가 있다면, 서버쪽에서 기동시에 -p 옵션 추가해 볼 것)
[root@SERVER]$ cd /home/mysql/MyHome/data
[root@SERVER]$ nc -l 9999 | tar zxvf -
-- 파일 전송 장비
[root@CLIENT]$ cd /home/mysql/MyHome/data
[root@CLIENT]$ tar cvzf - * | nc SERVER 9999

-> 52G Netcat + Tar : 40분 소요
-> 14G Netcat + Tar : 12분 소요

SSH와 Tar를 이용한 대용량 파일 복사
gzip -c /home/mysql/data/mytble.ibd  | ssh root@server2 "gunzip -c > /home/mysql/data/mytable.ibd"
tar -zcvf - /home/mysql/data/* | ssh root@server2 'cd /home/mysql/data/; tar -zxvf -'

Shell 에서 간단한 메일 보내기
SEND MAILecho "a test message" | Mail -s"a test subject" myaddr@myhost.com

STRACE를 이용한 Kernel write call 모니터링
ps -ef | grep mysql
lsof -p 30216 | grep ib_log
strace -f -p 30216 -e pread,pwrite -s1 -xx
==> 운영중인 서버에서는 실행 자제할 것 (가끔 문제를 일으키기도 함)

모든 사용자의 Crontab 확인
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done

PS 명령으로 메모리 사용량 확인
ps -eo rsz,vsz,comm,pid | grep -i <프로세스명>
ps -eo pid,comm,rsz,vsz | sort +3 -n

TCPDUMP 를 이용한 서버로 요청되는 쿼리 추출
## // libpcap library 필요함
tcpdump -i eth0 -s 0 -l -w - dst port 5605 -Z root | strings | perl -e '
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|INSERT)/i) {
  if (defined $q) { print "$q\n"; }
  $q=$_;
} else {
  $_ =~ s/^[ \t]+//; $q.=" $_";
}
}'

LESS를 이용해서 용량이 큰 텍스트 파일의 마지막 부분 내용 보기
less +G <text-file-name>
## +G 옵션으로 파일의 끝 페이지를 보여주며, "b"와 "f" 키를 이용해서 그 부근의 페이지들을 볼 수 있다.
  • "b" 키를 이용해서 이전 페이지로 이동
  • "f" 키를 이용해서 이후 페이지로 이동

파일의 내용을 HexString으로 덤프해서 보기
hexdump -v -C <file>


RPM 패키지를 현재 디렉토리에 압축 풀기
rpm2cpio mysql.x86_64-rhel5.x86_64.rpm | cpio -ivd







댓글 없음:

댓글 쓰기