■ rsync : 컴퓨터 시스템 상에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티
rsync[options][source][target]
옵션
-v : 복사하는 과정을 자세하게 보여줌
-z : 파일을 복사할 때 압축해서 복사함
-h : 읽기 쉬운 형태로 복사 결과들을 출력
-r : 디렉토리 복사할 때 사용
-l : symlink 형태로 복사
-p : 파일과 디렉토리들의 권한 수정
-t : 수정시간 유지
-g : 그룹 속성 유지
-o : 소유자 속성 유지
--devices : root권한이 필요하며 Device 관련된 파일들을 복사해서 생성
--specials : named socket이나 fifo와 같은 특수한 파일들도 복사
데이터 동기화
서버설정
![](https://blog.kakaocdn.net/dn/bGP0EK/btrw70BXhGm/Z58LBvYSZB2BsuR1VMEkv1/img.png)
vi /etc/xinetd.d/rsync 실행
disable = no 로 변경
![](https://blog.kakaocdn.net/dn/cpzDun/btrxb1mNmcy/Rbj4xIOVCuESMWoQPWkPtk/img.png)
[rsync_test] => 사용할 rsync 서비스 이름
path = /usr/local/test => 데이터원본 경로
comment = rsync_test => 코멘트
uid = root => 권한 사용자
gid = root => 권한 그룹
hosts allow = => rsync 클라이언트 IP
/etc/init.d/xinetd restart => xinetd 서비스 재시작
rsync -avz[IP]::[서비스명][저장디렉토리]
![](https://blog.kakaocdn.net/dn/cit0qI/btrxdH2aEaJ/ptCkFuld9L594NemJ65aQ0/img.png)
--delete 옵션 : 원본 소스에 없는 파일은 백업 서버에서 삭제
--dry-run : 실제 파일 복사를 하는것이 아니라 처리될 대상 파일 목록만 출력
7. 커널파라미터란
리눅스 시스템의 커널 변수의 값을 제어하며 시스템을 최적화 할 수 있는 방식 (/proc/sys 디렉터리에 존재)
■ 커널파라미터 설정
![](https://blog.kakaocdn.net/dn/bYU2GH/btrxcg43Dov/HAVkDql9lDZ8XLVttgIYm0/img.png)
![](https://blog.kakaocdn.net/dn/zZBEk/btrxcKku5T6/KbW0DI4Gi9tyzzueYrrNwk/img.png)
sysctl - 커널 변수의 값을 제어하여 시스템을 최적화할 수 있는 명령
sysctl 명령어
![](https://blog.kakaocdn.net/dn/dS4XKo/btrxdPzB1QV/dWKCkwUTZM4qXxiwqUf5G0/img.png)
![](https://blog.kakaocdn.net/dn/bt2ElZ/btrw71AQD26/HTTvvFEKQSz7uhIufiyink/img.png)
![](https://blog.kakaocdn.net/dn/clfDsm/btrxgo2nE5c/5K258yY2WDRTKPZHahhKjK/img.png)
8. tar – 테입 아카이브를 위해 고안된 파일 형식과 이런 형식의 파일을 다루는데 사용되는 프로그램
많은 파일을 디렉토리 구조, 파일 속성들을 보존하면서 하나의 큰 파일로 묶는 데 사용
명령어
![](https://blog.kakaocdn.net/dn/7O7Nl/btrxcL4ROgh/EpwWUDsvfKOmijKkVKPYV0/img.png)
![](https://blog.kakaocdn.net/dn/c4JkJd/btrxezpKaPk/xlRTzVPPhxcRe0aPoMdx00/img.png)
![](https://blog.kakaocdn.net/dn/Kx7iI/btrxgv7Xp3O/Nq3SOGhT3Vk8h5A4P8JYc0/img.png)
![](https://blog.kakaocdn.net/dn/mUIlu/btrxeyqOSy4/GdiTLuo98rMl6K2rtykO0K/img.png)
■ 그외 명령어
tar [OPTION] [FILE]
-f : 대상 tar 아카이브 지정. (기본 옵션)
-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
-v : 처리되는 과정(파일 정보)을 자세하게 나열.
-z : gzip 압축 적용 옵션.
-j : bzip2 압축 적용 옵션.
-t : tar 아카이브에 포함된 내용 확인.
-C : 대상 디렉토리 경로 지정.
-A : 지정된 파일을 tar 아카이브에 추가.
-d : tar 아카이브와 파일 시스템 간 차이점 검색.
-r : tar 아카이브의 마지막에 파일들 추가.
-u : tar 아카이브의 마지막에 파일들 추가.
-k : tar 아카이브 추출 시, 기존 파일 유지.
-U : tar 아카이브 추출 전, 기존 파일 삭제.
-w : 모든 진행 과정에 대해 확인 요청. (interactive)
-e : 첫 번째 에러 발생 시 중지.
9. awk - 패턴 탐색과 처리를 위한 명령어
간단하게 파일에서 결과를 추려내고 가공하여 원하는 결과물을 만들어내는 유틸리티
![](https://blog.kakaocdn.net/dn/Gk0nB/btrxgwy2efP/hOMW6hbaWfB4fu45J6oZgk/img.png)
![](https://blog.kakaocdn.net/dn/duoamx/btrw6UPxIIv/KzwK3DGaTLZoFRwz0JdJBk/img.png)
![](https://blog.kakaocdn.net/dn/GimCy/btrxb2srCrC/WOp7TnSOt8Rjkdgw0yix6K/img.png)
=> 액션을 사용하여 지정된 파일 내용 출력
=>액션을 통해 첫 번째 필드 값 출력
![](https://blog.kakaocdn.net/dn/KHYHP/btrxgvUsBG3/kQKFZ2msUdqrzzfstpQcF1/img.png)
=>필드값에 임의 문자열 같이 출력
![](https://blog.kakaocdn.net/dn/DDXvW/btrxfuV3gJm/RLd3r7I83Q7AfUB1L6NUh1/img.png)
=> 지정된 문자열을 포함하는 레코드만 출력
■ xargs - 서버를 운영할 때 다양한 파일을 목록으로 추출하여 삭제, 복사 를 할때 작업을 진행할 수 있게 도움을 주는 명령어
![](https://blog.kakaocdn.net/dn/b9lHUl/btrxezDhIgD/8w3Xhuj5o5cEZVl8l4DU8k/img.png)
=> /etc 속한 r로 시작하는 이름을 가진 .conf 파일 목록 찾아서 출력
■ ps - 리눅스 OS관리시 프로세스를 확인하는 명령어
프로세스 목록을 보여준다.
![](https://blog.kakaocdn.net/dn/dWM3Mg/btrxeKdeQVK/7GoTh7kXkdRBtmMqpapO5K/img.png)
옵션
![](https://blog.kakaocdn.net/dn/bYwFwx/btrxb0uFNe9/GJ2CUVVmQdAFOTh0O6G0x1/img.png)
-f : 풀 포맷으로 보여준다(UID, PID
![](https://blog.kakaocdn.net/dn/bjljbm/btrxdIfFBnS/IdF1MvuD0okBNidpS5Wut0/img.png)
-e : 모든 프로세스 출력
![](https://blog.kakaocdn.net/dn/sXZJC/btrxdHVqavS/uqASw7aL7sIQ5hTmipNE80/img.png)
-l : 긴 포맷으로 보여준다
![](https://blog.kakaocdn.net/dn/cnFsPb/btrw7ZJNUJn/niTjcXMPez1LQ4eNU5GrB1/img.png)
p, -p : 특정 PID의 프로세스를 보여준다
![](https://blog.kakaocdn.net/dn/mWkPb/btrxdN2TFAp/1sbPd8LYmLtQaUvSpfHXiK/img.png)
-u : 특정 사용자의 프로세스를 보여준다.
■ pstree
프로세스의 상관관계(부모-자식 관계)를 트리 형태로 출력해주는 명령어
관계를 트리 형태로 출력해주므로 계층 관계를 한 눈에 파악할 수 있음
경로 (/usr/bin/pstree)
옵션
![](https://blog.kakaocdn.net/dn/bcMxGk/btrxgwZ6fVj/y4OQg56hxeKaQlDhvSjwzk/img.png)
-c : 중복된 프로세스도 모두 출력 (기본 값은 트리 내의 동일한 프로세스를 하나의 프로세스로 출력하고 중복된 개수를 출력함)
![](https://blog.kakaocdn.net/dn/qN8PX/btrw9NbdHvg/8F7Xj7pJ5oJ95hDnLAvKcK/img.png)
-h : 현재 프로세스와 부모 프로세스를 하이라이트 형태로 출력
![](https://blog.kakaocdn.net/dn/bkXZB3/btrxchJJxCX/OKKoGXJgJjfE9BoyJ8oluk/img.png)
-H pid : 지정한 pid(프로세스ID)의 프로세스와 부모 프로세스를 하이라이트 형태로 출력
![](https://blog.kakaocdn.net/dn/3P9Ib/btrxc20fnZp/BWGMuQMVEa0OOhkSX2fKhK/img.png)
-l : 긴 라인을 모두 출력
![](https://blog.kakaocdn.net/dn/U0TJW/btrw53FUnpK/vPggbFFbhKFCSPs0klItEK/img.png)
-n : pid를 기준으로 정렬하여 출력
![](https://blog.kakaocdn.net/dn/bYtlGP/btrxcyE5HVR/aqTJb2zlLDF0Kze7vyHvdK/img.png)
-u : uid도 출력
![](https://blog.kakaocdn.net/dn/ccgnkw/btrxdH8UsrH/AJJ8ueTURXnEumZjdJfC51/img.png)
![](https://blog.kakaocdn.net/dn/bB75tv/btrxdN9BOqd/P3MfBB8sShhIuxqSfoxdi1/img.png)
-p : pid도 출력
![](https://blog.kakaocdn.net/dn/8ixe0/btrw6Vt4DIS/FPUyv8UtsRjREhib2ko1p0/img.png)
-U : UTF-8(유니코드) 형태로 출력3
![](https://blog.kakaocdn.net/dn/bfMO6p/btrxbOaEi3B/CD8YwkSZHRNduLM3xvOWS1/img.png)
-V : pstree의 버전 정보를 출력
![](https://blog.kakaocdn.net/dn/mCEri/btrxcKLA3rq/X4XcwBtObf0aCKhCrFRxd0/img.png)
-a : 지정한 인수까지 출력
10. sed
■ sed 란?
- interactive 기능이 없는 간편한 편집기
- 원본의 수정된 내용을 표시하지만 원본은 변경되지 않음
- shell script 작성시 사용
- line 단위로 처리
■ sed에서 사용되는 용어
pattern space
- sed command를 통해 처리될 라인을 임시로 저장하는 공간
- 해당 라인이 처리되면 스크린으로 출력하고 처리가 끝난 라인은 pattern space에서 제거됨
holding buffer
- sed command의 'h' option 사용시 사용되는 특수 buffer
- 'h' option을 사용하면 pattern space의 내용을 holding buffer로 복사함
- holiding buffer의 내용은 'G' command에 의해 출력됨
- 라인 이동시 사용
address
- 라인의 번호
■ 옵션
![](https://blog.kakaocdn.net/dn/CemHC/btrw53MFgwI/IwfTEXGImxdhuaN7VHnEX1/img.png)
-e : 다중편집
=> 해당 줄 1,2번째 출 출력
![](https://blog.kakaocdn.net/dn/xpxh3/btrxc3x8aWj/j4pBLzaSdWfgAQJ6PwBTpK/img.png)
=> infile.txt 파일에서 파일 처음 부터 끝까지 regex 를 REGEXP 로 바꾸어서 출력
![](https://blog.kakaocdn.net/dn/bFzRHR/btrxc2MKYXF/IsL8u5HG6OXNjF14xCZ071/img.png)
-p : 출력
=>2번째 줄 한번더 출력
![](https://blog.kakaocdn.net/dn/s5g6S/btrxdPl49cj/cU9xPOFCUCuphzdVih5jF0/img.png)
-d : 삭제
=> 3번째 줄 을 지우고 출력
![](https://blog.kakaocdn.net/dn/cVAlgZ/btrxeIT2QIk/TZX73zXb1y1IoweQG3AR71/img.png)
-s : 치환
=> infele.txt 파일 처음부터 끝까지 중 abb를 eff로 치환해서 출력
![](https://blog.kakaocdn.net/dn/bYYUW6/btrxbNW5QXe/C8t6hBq6ClFES3kNOE2Nl0/img.png)
모든 줄마다 공백줄 추가
11. rename : 하나 혹은 하나 이상의 파일명을 일괄 변경할때 사용하는 명령어
![](https://blog.kakaocdn.net/dn/p3Sd4/btrxdHHPOOK/HTkfmr7A8OysyrLLv1KdK0/img.png)
rename [변경전파일명] [변경후파일명] [대상파일]
![](https://blog.kakaocdn.net/dn/wi3Qg/btrxdHOAPCA/CPIewGrmmRMVO36BZbGpy1/img.png)
=> test0 으로 시작 하는 모든 파일을 test로 변경
=> aaa가 들어가는 모든 파일중에서 파일 이름 aaa를 xy로 변경