2009. 11. 13. 15:30ㆍ99. 정리전 - IT/13. Unix 얇팍지식
실전에 사용한 Unix 에 대한 여러가지 명령어들
너무나도 초보단계이기 때문에 한발짜국씩...냠냠냠
copy |
cp: omitting directory '/ 에러시 이렇게 하면 강제로 할꺼냐고 물어본다. 1)은 ccc 하위에 bbb디렉토리를 포함하여 카피, 2)는 bbb를 포함하지 않는 이하의 디렉토리를 카피 |
TAIL |
[실시간으로 로그보기] [마지막 라인에서 50번째 라인까지 보기] [옵션] |
rsync 사용법(미러링 툴)과 예제 |
> rsync -avz -e ssh www1.yahoo.co.kr:/home/www /home/www rsync는 서버간, 혹은 디렉토리간의 미러링을 구현시 가장 일반적인 툴이라 할 수 있겠다. 여러가지 검토해본결과 rsync+ssh가 이상적으로 판단, 문제의 크론작업시의 자동 인증과정을 클리어 하기로 했다. rsync의 기본 사용법을 모른다면 밑에를 참조 간단한 사용예 rsync -avurz --delete --exclude=*.db --exclude=*.info SRC(원본) DEST(복사될 위치) -a는 archive mode (심볼릭 링크, 속성, 퍼미션, 소유권등 보존). --delete: 원본 디렉토리에 없는 파일은 없앤다. / 가 붙는 것과 안붙을 경우 차이가 난다. SRC경로를 /home/backup라고 해주면 backup폴더가 생성되고 자료들이 backup폴더 안으로 들어가고 DEST경로를 /home/backup/라고 해주면 백업 경로에 바로 저장이 된다. 주의 하기 바란다.(먼소리?) |
적용예 (주)웹호스트 구자열과장 danda@nate.com 님의 ssh, rsync를 이용한 백업방법에 대한 웹호스트 연구문서 문서를 참고, 재구성 하였다.
백업스크립트작성 ※설치 스크립트 명:wwwbk1.sh
## 1.1.1.2(포트가 다른 경우)
테스트(절차숙지)
#remote backup www server 6:00
| |
ssh, rsync를 이용한 백업방법에 대한 웹호스트 연구문서 |
가정 상황
■ 포트및 접속, 데먼에 대한 이해
[1.1.1.1의 백업]
□ cron으로 구성시 백업스크립트작성 백업스크립트작성 |
|
|
|
|
|
|
|
|
|
※설치
#yum install expect
스크립트 명:wwwbk1.sh
#!/usr/bin/expect -f
## 1.1.1.1
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.1:/.backup/ /.backup/start1/
expect "password: "
send "비밀번호\n"
log_user 1
interact
## 1.1.1.2(포트가 다른 경우)
log_user 0
spawn rsync -avPz --stats -l -t -e ssh 아이디@1.1.1.2#100:/.backup/ /.backup/www2/
expect "password: "
send "비밀번호\n"
log_user 1
interact
테스트(절차숙지)
1) expect 를 설치하라.
2) /usr/bin/expect -f wwwbk1.sh <---이렇게 테스트해보라(에러출력됨)
3) expect
> log_user 0
1
....
exit
이런식으로 expect명령으로 각 줄을 입력 테스트해보라~
□ crontab의 작성
※새벽4시경에
#crontab -e 로 이하를 추가
#remote backup www server 6:00
00 4 * * 5 root /sbin/e2fsck -p /dev/hdb1
01 4 * * 1 root /backupscripts/wwwbk1.sh
01 4 * * 2 root /backupscripts/wwwbk1.sh
01 4 * * 3 root /backupscripts/wwwbk1.sh
01 4 * * 4 root /backupscripts/wwwbk1.sh
01 4 * * 5 root /backupscripts/wwwbk2.sh
01 4 * * 6 root /backupscripts/wwwbk2.sh
01 4 * * 0 root /backupscripts/wwwbk2.sh
위에 작성한 문서를 wwwbk1.sh 와 wwwbk2.sh로 폴더를 다르게한 후,
월-목 : wwwbk1실행하여 /bk/백업1/
금-일 : wwwbk2실행하여 /bk/백업2/
에 놓아서 안정성을 가중시킨다.
※ 루드권한으로 변환
>su -
※ 일반 유저에서 루트권한으로 전환
>sudo su -
※ SSH접속
>ssh userName@192.168.x.x
※ 파일검색
>find /home -name '검색할단어'
※ 단어검색 : /home 이하의 디렉토리 중 검색대상 제외 단어 및 디렉토리 지정
grep -v 단어는 홅따옴표 속에, 디렉토리는 보통의 디렉토리로 지정함
>find /home -type f | gerp -v '/.svn' | gerp -v '/logs' | xarg grep -C1 '검색할단어'
>find /home -type f | gerp -v '/.svn' | gerp -v '/logs' | xarg grep '검색할단어'
>find /home/project/ -type f -print -name '*' | grep -v ./.svn | grep -v ./log | grep -v ./logs | grep -v ./cache | grep -v ./uploads | xargs grep '검색할단어'
※ MySQL 접속 (패스워드 부분은 붙여서 작성)
>mysql -h 192.168.x.x -u root -p1111 DB명
※ MySQL 백업
>mysqldump -h 192.168.x.x -u root -p1111 DB명 > backupName.sql
※ MySQL 리스트어
>mysql -h 192.168.x.x -u root -p1111 DB명 < backupName.sql
※ 압축
>tar zcvf backupFile.tar.gz
※ 압축해제
>gzip -dc fileName | tar xvf
>tar zxvf fineName
※ 심볼릭 링크
>ln -s targetPass seltPass
※ svn 프로잭트 생성
>svnadmin create /var/www/svn/프로잭트명 --fs-type fsfs
>chgrp -R 775 프로잭트명
>chmod -R 755 *
※ svn 상세
http://mindseye.tistory.com/entry/svn-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
http://cafe.naver.com/devctrl.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=5189
※ svn 정보보기
>svn info
>svn stat
※ svn 에 접속
>http://192.168.x.x/repos/프로잭트명
※ svn checkout
>svn checkout svn://192.168.x.x/repos/프로잭트명 ./
※ svn commit
>svn ci /home/ -m ''
※ svn 특정 디렉토리 제외한 commit
>svn propedit svn:ignore ./cache/
※ ipconfig
>/sbin/ifconfig
※ 개방된 IP & port 리스트
>netstat -tlpn
※ 데몬재기동
>service 서비스명 restart
※ 아팟치 재기동
>/etc/rc.d/init.d/httpd reload
※ 디스크용량 확인
>df
or
>du -h
※ path 패스 걸기
>/home/donz/.bash_profile을 수정
※ MySQL 외부접속 허용
MySQL실행 후 mysql DB의 user테이블에 host를 추가
>service mysql restart
커밋 후, 반드시 MySQL을 재기동 해야 적용됨... 아놔... 재기동을 몰라 반나절 해맴
※ 서버 기동시 아파치 자동기동
>chkconfig httpd on
※ 서버 기동시 아파치 자동기동 해제
>chkconfig --del httpd
※ 복수의 ip 어드레스 네트워크셋팅
------------------------------
(/etc/sysconfig/network-scripts/ifcfg-eth0:0)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.202
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
(/etc/sysconfig/network-scripts/ifcfg-eth0:1)
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.203
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
ip 셋팅 후 리붓할 것
※ 리붓 하지않고 네트워크 리셋하기
>/etc/init.d/network stop
>/etc/init.d/network restart
>/sbin/ifconfig eth0 down