1.로그인 쉘
/etc/shells에 정의되어 있는 쉘을 사용할 수 있다.
chsh -l
자신의 쉘 확인방법
1)grep 계정명 /etc/passwd 파일의 7번째 필드를 확인
2)echo $SHELL
*자신의 쉘을 변경하는 방법
chsh
passwd:
NEW SHELL [/bin/bash]: 변경할 쉘을 절대경로로 입력한다.
재 로그인을 해야 쉘 변경값을 확인이 가능하다.
2.프롬프트 꾸미기
vi /etc/bashrc ===>재부팅후에도 사용하고자...
리눅스의 기볼 쉘 프롬프트 구조
[사용자@호스트이름 ~]
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
위 부분 수정
위의 환경변수를 수정하면 즉시 환경이 적용된다.
환경변수를 백업하고자 아래의 구문을 입력한다.
위의 형식을 PS1 환경변수라고 한다.
SAVE=$PS1
백업한 환경변수를 다시 적용하려면
PS1=$SAVE
>
위의 형식을 PS2 환경변수라고 한다.
실습]현재 사용중인 터미널에서 환경변수 수정하기
SAVE=$PS1
PS1="\t"
시간
PS1=$SAVE
※
\a 아스크 종소리 문자(07)
\d 요일 월 날짜 형식으로 표시됨
\e 아스크의 escape 문자(33)
\h 호스트네임
\H 호스트네임
\n 줄바꿈
\r carrage return
\s 쉘의 이름
\t 24시간제 시:분:초
\T 12시간제 시:분:초
\@ 12시간제 오전/오후 형식으로 표시
\u 유저네임
\v bash 버전
\V 버전을 자세히
\w 현재 작업디렉토리
\W 현재 작업디렉토리
\! 현재 명령어의 히스토리 번호
\# 현재 명령어의 command 번호
\$ 유효한 UID가 0이면 #으로 표시하고, 그렇지 않으면 $로 표시
\nnn 8진수 nnn에 해당하는 문자
\\ 역 슬래쉬
\[ 프롬프트 시작 문자
\] 프롬프트 끝 문자
3.쉘 환경변수
환경변수를 확인하는 방법
set
pritenv
env
환경변수 수정
~/.bash_profile
환경변수명=값 형식으로 환경변수를 등록한다.
실습]호스트네임을 이니셜로 변경하기
export HOSTNAME=kimjs
SSH_AGENT_PID=4238
HOSTNAME=localhost.localdomain
DESKTOP_STARTUP_ID=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
GTK_RC_FILES=/etc/gtk/gtkrc:/root/.gtkrc-1.2-gnome2
WINDOWID=27263057
USER=root
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
GNOME_KEYRING_SOCKET=/tmp/keyring-NhzJLZ/socket
SSH_AUTH_SOCK=/tmp/ssh-byjVnm4203/agent.4203
SESSION_MANAGER=local/localhost.localdomain:/tmp/.ICE-unix/4203
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
DESKTOP_SESSION=default
QT_IM_MODULE=xim
GDM_XSERVER_LOCATION=local
INPUTRC=/etc/inputrc
PWD=/root
XMODIFIERS=@im=SCIM
LANG=ko_KR.UTF-8
GDMSESSION=default
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=2
HOME=/root
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=root
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QUQilYs2HZ,guid=2d3ef5e5d71418cc3099ee005719ac01
LESSOPEN=|/usr/bin/lesspipe.sh %s
DISPLAY=:0.0
GTK_IM_MODULE=scim-bridge
G_BROKEN_FILENAMES=1
COLORTERM=gnome-terminal
XAUTHORITY=/tmp/.gdm8KDHGY
_=/usr/bin/printenv
OLDPWD=/root/0420/1
환경변수 수정
~/.bash_profile
환경변수명 = 값 형식으로 환경변수를 등록한다.
실습] 호스트네임 자신의 이니셜로 수정하기
export HOSTNAME=BLUEBLUE
============================================
백업
1.전체백업-제로데이백업
2.증분백업
3.차등백업
*tar를 이용한 로컬 데이터 미러링하기
사용법
tar cpf - --directory=/home/ . | (cd /data; tar xpf - )
[실습] /dev/sdc1하드디스크에 /etc/, /usr, /var, /home 디렉터리를
tar 명령을 이용하여 미러링한다.
*tar를 이용한 리눅스 운영체제 백업하기
리눅스 파티션중에서 /proc, /mnt, /media, /tmp 디렉토리는 백업과는 상관이 없다.
--exclude 옵션을 사용하여 백업대상에서 제외시킬 수 있다.
백업위치:/
tar cpvfz /jinsuk/CentOS5-backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/media --exclude=/jinsuk --absolute-names /
조별실습] 위의 운영체제 백업을 네트워크로 조별간 각각 백업하시오.
***** 제한시간 15분 ******
rsync를 이용한 네트워크 서버 미러링
rsync를 이용하면 루트 권한없이 서버로부터 데이터를 빠르게 전송받을 수 있으며,.
원격서버의 데이터 변화가 있더라도 변화된 데이터를 저장할 수 있다.
다른 하나의 방법은 SSH를 이용하면 rsync 서버가 구축되어 있지 않더라도 미러링을 사용할 수 있다.
SSH를 이용한 원격 서버 데이터 미러링 하기
rsync -avzr --delete -e ssh 계정명 @원격서버:데이터 경로 백업경로
예)rsync -avzr --delete -e ssh root@172.16.4.71:/home/ 0426
Tip.
원격 서버와 미러서버의 계정이 동일하면 계정명을 생략해도 되며,
다른 경우에는 반드시 계정명을 입력해주어야 한다.
rsync 패키지 설치
yum install rsync
vi /etc/rsyncd.conf
이 파일은 직접 생성해주어야 한다.
[rsync 서비스명]
comment=서버에 대한 도움말/설명
patch=미러링될 데이터의 홈디렉토리/경로
uid=사용자아이디
gid=그룹아이디
user chroot=yes | no 중에 선택
readonly=yes | no 중에 선택
host allow=허용할 아이피주소
max connections=최대 접속횟수(접속제한)
timeout=초단위설정
예시
[gnome8]
comment=centos5 Mirroring
patch=/home
uid=nobody
gid=nobody
user chroot=yes
readonly=yes
host allow=172.16.4.33
max connections=3
timeout=60
rsyncd.conf 파일을 수퍼데몬이 관리한다.
vi /etc/xinetd.d/rsync 설정
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
service = /usr/bin/rsync
server_arps = --daemon
log_on-failure +=USERID
}
service xinetd restart
동작 테스트는
telnet localhost 873
netstat -na | grep LISTEN
로컬백업실습
rsync -avrz --delete 백업소스경로 미러링경로
원격백업실습
원격백업실습
rsync -avzr --delete 서버주소:서비스명 미러링경로
=>rsync -avrz --delete(변경된 것을 지움, 증분백업)
-------------------------------------------------------------------
1. http://rsync.samba.org/ftp/rsync/에서 최신판을 받아서 설치한다.
* 기본적으로 설치되어 운영됨( Redhat )
2. 압축을 풀고 ./configure 실행
3. make 및 make install 실행
4. 서버 셋팅
- rsync 서비스를 연다
#vi /etc/xinetd.d/rsync
service rsync
{
disable = no <<== 여기를 no로 해야 서비스가 시작
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
- 셋팅파일을 만든다
#vi /etc/rsyncd.conf
[source] =>rsync 에서 사용할 alias name
path = /data => 실제 디렉토리 절대 경로
comment = source directory =>주석
uid = root => 파일 전송하는 사용자의 id. 기본값은 nobody
gid = root => 파일 전송하는 사용자의 그룹 id. 기본값은 nobody
use chroot = yes => 보안을 위해 path 경로를 root로 설정할지 여부 결정
read only = yes =>읽기전용(클라이언트에서 서버로 올리는 경우에는 read only=no로 설정을 해야 됩니다. )
hosts allow = 192.168.0.17 => 접근을 허용할 백업 서버 ip (기본 ALL로 설정되어있음)
max connections = 1 => 허용하는 접속 수
timeout = 300
- xinet를 재 시작함으로 데몬 시작 (기본 873 포트가 열린다.)
#/etc/rc.d/init.d/xinetd restart
- 포트가 열려있는지 netstat 이나 telnet 명령으로 873포트를 확인해본다.
#telnet localhost 873
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
@RSYNCD: 26
#netstat -na | grep LISTEN
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
873 포트가 보인다면 설정 완료.
5. 클라이언트 명령
- #telnet ***.***.***.*** 873
Trying 127.0.0.1...
Connected to ***.***.***.***.
Escape character is '^]'.
@RSYNCD: 26
만약 connect refuse 가 나오면 서버의 셋팅을 처음부터 다시 살펴본다. 위처럼 대기 상태이면 완료.
- rsync ?옵션 서버ip주소::서버셋팅aliasname 클라이언트에 저장될 디렉토리
Ex) rsync ?avz 192.168.33.4::source /data =>서버의 source에 할당된 path에서 클라이언트의 /data폴더로 복사
6. rsync 옵션
-a는 아카이브 모드. 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존
-v 전송 상태를 보여줌
-z 전송시 압축을 함.
-r recursive (하위 디렉토리까지 포함)
-t 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜)
--delete =>A서버에는 없는데 B서버에 있다면 지우라는 명령
--bwlimit=KBPS => I/O bandwidth 한계설정 (Kbytes/sec)
'IT 관련정보 > 리눅스' 카테고리의 다른 글
리눅스 기본 이론(8) - 로그 분석, 백도어 실습, tripwire (0) | 2017.04.19 |
---|---|
리눅스 기본 이론(7) - CD-ROM, 커널 컴파일, 시스템 로그 (0) | 2017.04.19 |
리눅스 기본 이론(5) - 데몬 관리, crontab, at, YUM, RPM (0) | 2017.04.18 |
리눅스 기본 이론(4) -프로세스 관리 (0) | 2017.04.18 |
리눅스 기본 이론(3) - 마운트 및 파일 시스템, 스왑, 쿼터 설정 (0) | 2017.04.18 |