리눅스 기초명령어 3(tar, gzip, bzip, clock, date, rdate)

2022. 10. 19. 15:27리눅스

tar

여러 개의 파일을 하나의 파일로 압축한다. 단 용량은 줄어들지 않는다. 용량을 줄이기 위해서는 gzip을 이용하거나 특별한 옵션을 이용한다.
 # tar  [옵션]  [압축파일명]  [대상]
  ‐c : 압축,  ‐x : 풀기,  ‐v : 작업내용을 출력
  ‐z : gzip를 이용 압축(압축해제),  ‐j : bzip2 이용
  ‐f : 파일명을 지정,  ‐p : 퍼미션 유지

 

실습)

[root@Linux1 ~]# mkdir -p ./aa/a/

[root@Linux1 ~]# echo 1 > ./aa/a.txt
[root@Linux1 ~]# echo 2 > ./aa/a/a.txt
[root@Linux1 ~]# ls
aa  anaconda-ks.cfg  initial-setup-ks.cfg

[root@Linux1 ~]# tar cvfz aa.tar.gz aa
aa/
aa/a/
aa/a/a.txt
aa/a.txt
[root@Linux1 ~]# ls
aa  aa.tar.gz  anaconda-ks.cfg  initial-setup-ks.cfg
[root@Linux1 ~]# rm -rf aa
[root@Linux1 ~]# ls
aa.tar.gz  anaconda-ks.cfg  initial-setup-ks.cfg
[root@Linux1 ~]# tar xvfz aa.tar.gz
aa/
aa/a/
aa/a/a.txt
aa/a.txt
[root@Linux1 ~]# ls -R aa
aa:
a  a.txt

aa/a:
a.txt

 

tar 를 이용한 증분 백업

# tar  [옵션]  [압축파일명]  ‐g  [백업정보 파일] [대상]

 

실습)
# tar cvfz home_full.gz  ‐g  /backup/home_backup /home
# tar cvfz home_l1.gz  ‐g  /backup/home_backup /home
# tar cvfz home_l2.gz  ‐g  /backup/home_backup /home
‐> 복구는 반드시 압축순으로 해제한다.
- 파일 단위 백업 Os 레벨에서의 완전한 증분 백업은 불가능하다.

 

실습)

[root@Linux1 ~]# mkdir backup
[root@Linux1 ~]# mkdir imsy
[root@Linux1 ~]# echo 1 > ./imsy/a.txt
[root@Linux1 ~]# echo 2 > ./imsy/b.txt
[root@Linux1 ~]# tar cvfz ./backup/full.tar.gz -g ./backup/imsy ./imsy/
tar: ./imsy: Directory is new
./imsy/
./imsy/a.txt
./imsy/b.txt

[root@Linux1 ~]# echo 3 >> ./imsy/b.txt
[root@Linux1 ~]# tar cvfz ./backup/cum1.tar.gz -g ./backup/imsy ./imsy/
./imsy/
./imsy/b.txt

 

gzip

 - # gzip a.txt           :  a.txt.gz로 압축한다.
 - # gzip ‐d  a.txt.gz    : 파일의 압축을 해제한다.

 

bzip2, compress, cpio

 - # bzip2, compress : 압축
 - # bunzip2,  uncompress : 압축 해제
 - # cpio –idmv <  [압축파일명] : 압축해제

 

clock

리눅스 시스템에 탑재된 BIOS의 시간을 출력하거나 변경한다.

 

# clock  [옵션]

‐r : BIOS의 시간을 읽어 표준 출력으로 출력한다.
‐w : 시스템의 시간을 이용 시간을 변경한다.
‐s : BIOS의 시간으로 시스템의 시간을 변경한다.

 

시간설정이 매우중요해서 시스템 관리자는 시간부터 설정해야하는데 이때 clock사용

 

date

지정한 포맷으로 시스템의 날짜를 출력한다.

 

# date  [+포맷]

포맷(시간)

 - 시 : %H(00..23),  %(01..12),  %k(0..23),  %l(1..12),  %p(AM,PM)
 - 분 : %M(00..59)
 - 초 : %S(00..59)
 - 시간 : %r(hh12:mm:ss AM),  %T(hh24:mm:ss),  %X (로케일)
 - 기타 : %s (1970년 1월 1일 이후 경과된 초)

 

포맷(날짜)

 - 년 : %Y(YYYY),  %y(yy)
 - 월 : %m(01..12),  %B(January .. December),  %b(Jan .. Dec)
 - 일 : %d(01..31)
 - 요일 : %A(Sunday .. Saturday),  %a(Sun .. Sat),  %w(0..6)
 - 기타 : %D(mm/dd/yy),  %x(로케일),  %j(00..365)

 

실습)

[root@linux1 ~]# clock ‐r
2022년 10월 11일 (화) 오후 03시 59분 25초 ‐0.898274 seconds
[root@linux1~]# date
2022. 10. 11. (화) 15:59:31 KST
[root@linux1 ~]# unset LANG
[root@linux1 ~]# clock ‐r
Wed Oct 11 15:59:42 2022  ‐0.492371 seconds
[root@linux1 ~]# date
Wed Oct  11 15:59:47 KST 2022
[root@linux1 ~]# date +%D:%T
10/11/22:16:00:03
[root@linux1 ~]# date +%Y/%m/%d:%H:%M:%S
2022/10/11:16:00:30

 

rdate

 - 인터넷상에 제공되는 서버로부터 시간정보를 받아 시간을 출력하거나 시스템의 시간을 재설정한다.

 

# rdate [옵션]  [시간 제공 서버 주소]

‐p : 타임 서버로 부터 제공된 시간을 출력한다.
‐s : 타임 서버로 부터 제공된 시간을 이용 시스템의 시간을 재 설정한다.

 

[root@Linux1 ~]# vi /etc/rc.d/rc.local

rdate ‐s time.bora.net 입력

 

리눅스를 새롭개 만들었으면 반드시 사용해서 시간 맞추어야 한다.