2015년 4월 14일 화요일

리눅스를 관리하는데 필요한 명령어 모음 (Useful Linux Command)

*  리눅스 서버관리시 자주 사용하는 명령어 모음


// 원격 복사 (SSH-SCP) 


/usr/bin/scp -r root@easy:/home/www/dongbobooks.com/public_html/* /backup_hompy/dongbobooks.com/

1. upload : scp upfile root@serverip:/home/tmp

2. download : scp root@serverip:/home/dwfile /home/tmp

// 복사 cp

* 전체 복사시 무조건 덮어 씌우기
cp -a --reply yes source_file target_file


* 일괄 리네임 - 예를들어 test.cpp test1.cpp test2.cpp
이런식으로 다수의 파일이 있을떄 일일히 cp 명령어로 .bak 파일을 만드려면...
ls test* | xargs -t -i cp {} {}.bak

* sample 070730
ls |egrep -v 'thumb'|xargs rm -rf
ls|awk -F. '{print "mv "$0 " "$1"\_thumb\.jpg"}'
ls|awk -F_ '{print "mv "$0 " "$1"\.jpg"}'



// 주기적으로 로그 파일 모니터링(watch)

watch -n 3 tail -30 /var/log/messages
watch -d tail -30 /var/log/messages

// 특정 필드 뿌리기 (awk)

cat leaderi.co.kr-access_log|awk '{print $1 " " $5 " " $7}'|more
netstat -np|grep -F httpd|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -l

//awk, sed , sort, xargs 명령어 메모

ls -l|egrep "00000361[345]+.".jpg|awk {'print $9'}|xargs rm -rf
ps -ef | grep httpd | awk '{print $2}' |xargs kill -9
ls -l /home/cvsroot|awk '{print $9}'|xargs cvs checkout

// tar 명령.. .( 파일 압축 명령)

* 분할 압축
tar -zcvpf - file | split -b 600mb - compress.tar.gz

* 파일 일반 압축
tar cvfzp compress.tar.gz filename

* 압축 풀기
tar vxfz compress.tar.gz

* 잘못 풀어진 tar 파일 지우기..

tar tfz filename.tar.gz | xargs rm

* 압축할때 특정 디렉토리 제외
tar cvfz ddd.tar.gz /home/www/pub/* --exclude isbnimg --exclude isbn

// find 명령.....

// unix time AMC >> access(ls명령) , modify(vi 파일 편집) , change(inode>> 소유권,권한변경시)
* MAC time 설명 : +5 5일 이후 파일들(범위), -5 5일안에 파일들(범위), 5 5일전의 파일들(특정날짜)
1. find -atime +5 \( -name "*.o" -o -name "*.tmp" \) -print
2. find . -perm -20 -exec chmod g-w {} \;
= find . -perm -20|xargs chmod g-w // 공백들어간 문자에서 오류 발생 가능성

find . -inum 31254 -exec rm -rf {} \; // 공백들어간 문자 삭제
3. find -type d -group staff -exec find {} -type -l -print \;

4. find -perm -100 -print // user 의 실행가능한 파일 목록
find -perm -20 -print // group 의 쓰기 가능한 파일 목록
5. # 특정 디렉토리에서 이미지 추출 한디렉토리로 복사
find ./isbnimg -name 97*.jpg -exec cp -a {} ./isbnimg_all/ \;

6. 하루 안에 수정된 파일 삭제
find ./ -mtime -1 -type f -exec rm -rf {} \;

7. 특정파일 검색후 필터링 - 리네임 복사
find -mtime -1 -type f|fgrep -v 'ilsun'|xargs -i cp -a {} temp/{}.bak;

8. 공백 들어간 디렉토리 삭제 (ls -i 로 먼저 해당 파일의 노드 번호를 확인)
find -inum 2323 -exec rm -rf {} \;

9. 파일 사이즈 관련
-빈 파일(크기가 0 인 파일) 찾기
find / -empty -print | more 또는 find / -size 0 -print | more
- 파일 크기가 100M 이상인 파일을 찾기
find / -size +102400k -print | xargs ls -hl

10. 최근 30일(30) 안에(-) 접근(access)하지 않은 파일과 디렉토리를 리스트로 만들려면(-atime)?
find / ! \( -atime -30 -a \( -type d -o -type f \) \) | xargs ls -l > not_access.list


// 기타 명령어

1. wget -b -q --spider -o /dev/null http://sandero.com/_4danawa/engine.php
## 확실히 실행됨 ^^/
2. /usr/bin/wget -b -q -o /dev/null http://dongbobooks.com/cgi/kspaypg/cashbill.php -O $loc/log_app.php


// cut 명령 *참고 : 열 찾을려면 -c 필드 찾을려면 -f

cut -d: -f1,5 /etc/passwd


// vi 명령어



* 참고 정규표현식

^ 처음 ->> []안에서는 부정을 의미 [^0-9] 0에서9를 제외한 문자를 의미
$ 끝을 의미
% 전체
& 대체 페턴 부분으로서 검색 패턴 다시 사용
/u 대체 페턴의 첫문자를 대문자로
/U 전체를 대문자로
/l 대체 페턴의 첫문자를 소문자로
/L 전체를 소문자로
^\. .로 시작하는 라인
\<the the 로 시작하는 모든 단어 예> theater the there
the>\ the 로 끝나는 단어
\<the>\ the 단어
compan(y|ies) 둘중에 하나 y 또는 ies
1. 저장

:1,10w newfile
:230,$w >> filename 덧붙힘
2. 탐색 대체

:$s/[Hh]lep/hello/g

:s/str/rep/
현재 행의 str을 rep로 대체

:1,.s/str/rep/
1부터 현재 행의 str을 rep로 전부 대체

:%s/str/rep/g
// 처음부터 파일 끝까지

:120,150 s/txt/rep ## 특정 라인

:g/^$/d
공백 문자 제거

:12,24/^$/d
12,24 라인 모두 삭제

:sp filename / ctrl + ww
동시 두개 파일보기

:e filename / ctrl + ^
여러파일 편집

:1,2 co 3
1-2행을 3행 다음으로 복사

:4,5 m 6
4-5행을 6행 다음으로 이동

댓글 없음:

댓글 쓰기