[서버관리]자주 사용하는 커맨드
1. xargs 명령은 입력된 데이터를 라인단위로 읽어서 아규먼트화 하는 명령이다.
find 명령을 사용하여 파일을 삭제하고자 할때 유용하다.
# find . -type f -mtime +1 | xargs -n 100 rm -f
find 명령을 사용하여 현재 디렉토리 하에서 현재시간보다 하루(+) 전(24시간 내에 작성/변경된 파일만 제외)에 작성/변경된 파일을 찾으면 라인단위로 파일 리스트가 쉘에 출력되는데, 이 파일 리스트는 하나의 라인당 하나의 파일명이 출력되므로 각 라인의 파일명을 아규먼트화하기 위해 xargs를 파이프로 연결한 다음 -n 100 즉, 100 라인(100개 아규먼트)를 한번에 읽어서 rm -f [아규먼트]로 치환하여 100개 단위로 검색된 파일들을 삭제하는 것이다.
[root@localhost shell]# man xargs | col -b | cat
XARGS(1) XARGS(1)
NAME
xargs - build and execute command lines from standard input
SYNOPSIS
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
[-d delimiter] [--delimiter delimiter] [-I replace-str] [-i[replace-
str]] [--replace[=replace-str]] [-l[max-lines]] [-L max-lines]
[--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s
2. iNode 확인 방법
df -F ufs -o i
3. 압축
----------------------------------------------------------------
#tar 압축 cvf 옵션으로 ...
tar cvf abc.tar def/ WEB-INF/ a.jsp ghi/ b.jsp c.jsp
gzip -9 *20100[4-6]*
#한번더 압축 gzip
gzip abc.tar
----------------------------------------------------------------
#풀때
----------------------------------------------------------------
tar 로 압축되었을 경우 cvf 와는 반대로 xvf를 사용하시면 됩니다.
# tar xvf c.gzip
라고 하시면 압축이 풀릴겁니다.
물론 x 옵션만 사용하셔도 되지만 vf 는 압축해제 하면서 파일리스트도 출력하게 해 줍니다.
gzip으로 압축되었다면 gunzip 로 풀수 있습니다.
# gunzip c.gzip
라고 하시고 디렉토리 보시면 풀려 있을겁니다.
질문 추가 한 곳을 보면 잘 이해가 되지는 않네요.
tar cvf *.c 라고 하셨다면... 조금 난감한 상황이 생길 수도 있습니다.
ls 명령으로 보면 처음에 오는 파일에다가 그 디렉토리에 있는 모든 *.c 파일이 결합되어집니다. 다시 풀수는 있지만... 결합되어져 버린 첫번째 파일은 사용못할 수도 있습니다.
----------------------------------------------------------------
#추가
----------------------------------------------------------------
<< 압축하기 >>
* tar 와 gzip 따로 하기
# tar cvf file_name.tar *.c
# gzip file_name.tar
* tar 와 gzip 동시에
# tar cfp - target_dir | gzip -c > made_file.tar.gz
tar cfpv - ./201007* ilkacs_201007*.log tar |gzip -c > acs_201007.tar.gz
// target_dir = 압축할 파일들이 들어 있는 디렉토리
// made_file = 만들어질 압축파일의 이름.
<< 압축풀기 >>
* tar 와 gzip 따로 하기
# gzip -d file_name.tar.gz
# tar -xvf file_name.tar
* tar 와 gzip 동시에
# gzip -dc source_file.tar.gz | tar xvfp
4. CPIO 파일 만들기
cpio 를 이용한 특정 확장자 파일만 압축하기.
# find . -name '*.c' -print | cpio -o > data.cpio
# ls | cpio -o > ../test.cpio
CPIO 파일 풀기
-i cpio로 백업한 data를 restore 한다
-o 출력 - 묶을때
-p 통과모드
-d restore중 필요한 디렉토리를 자동으로 생성시킨다
-m 백업 되있는 data들의 날짜, 시간을 그대로 유지한다
-v verbose
# cpio -idmv < test.cpio
# cpio -i < data.cpio
# cpio -dmvi < example.cpio
# cpio -dmvi < /root/test.cpio
gz으로 압축되어 있는것을 풀기
예1:
# gunzip targetfile.cpio.gz
# cpio -idmv < targetfile.cpio
예 2:
# zcat targetfile.cpio.gz | cpio -idmv
압축 하여 CPIO 만들기
tar 를 이용한 특정 확장자 파일 압축하기 (리눅스)
find . -name "*.c" | xargs tar -cvf soure.tar
xargs 를 파라미터 수가 제한적이어서, 파일수가 많으면 불가능함.
cpio로 파일 옮기기
한 디렉토리 또는 파일시스템에서 다른 디렉토리 또는 파일시스템으로 옮겨야 할 대량의 파일이 있을 경우 다음의 명령을 이용
# find /old_directory -depth | cpio -pdmv /new_directory
이 명령은 소유자와 권한, 디렉토리 구조를 유지하면서 지정한 old_directory 밑의 모든 파일을 new_directory로 옮긴다.
# cd src_dir_name
# find . -depth -print | cpio -pudm target_dir_name
5.rpm 설치
- #rpm -Uvh test-1.2.3.src.rpm
: test.src.rpm을 /usr/src/<vender_name_dir>/SPEC 에 SPEC 파일과
/usr/src/<vender_name_dir>/SOURCES/ 에 소스를 설치 한다.
기존에 설치된 패키지가 있을 경우 업그레이드를 한다. -ivh 보다 많이 사용한다.
#rpm -Uvh test-1.2.3.rpm
: test-1.2.3.rpm 을 설치 한다. 기존에 test 라는 낮은 버젼의 패키지가 있으면 업그레이드. 없으면 그냥 -ivh 처럼 설치가 된다.
#rpm -ivh test-1.2.3.rpm
: test-1.2.3 을 처음으로 설치 한다. 처음 설치가 아니더라도 -Uvh 를 사용해도 무관 하다.
- 설치된 rpm 제거
#rpm -e test
: test 라는 이름의 패키지를 제거 한다.
#rpm -evv test
: test 라는 패키지를 제거 하는 과정을 보여 준다.
- 설치된 패키지 정보 보기
#rpm -qi test
: test 가 설치 되어 있다면, test 패키지에 대한 설명이 주루룩 뜰것 이다. 아래는 예...
'02.서버-공통' 카테고리의 다른 글
[서버공통]벤더별 명령어 비교 (0) | 2012.12.19 |
---|---|
[서버공통]OS 커널 확인 방법 (0) | 2012.12.19 |
[서버관리]STATIC 라우팅 테이블 추가 (0) | 2012.12.19 |
[서버관리]VCS 서비스 확인 (0) | 2012.12.19 |
[서버관리]유저 관리 스크립트 (0) | 2012.12.19 |