본문 바로가기
리눅스/서버운영

[리눅스] 파티션 복사 실습④ (안되는이유찾기)

by 상달군 2023. 12. 26.
728x90

새로운 하드 디스크로 cp명령어를 이용해서 다시 진행 해보고 

rsync 명령어와 cp명령어가 어떻게 다른지 테스트 해보기 !!!


1. sys, proc의 권한이 다름 

 

sda의 sys 디렉토리

dr-xr-xr-x.  13 root root    0 Dec 27 20:24 sys

sdb의 sys 디렉토리

drwxr-xr-x.   2 root root    6 Dec 27 19:42 sys

 

sda의 proc 디렉토리

dr-xr-xr-x. 247 root root    0 Dec 27 20:24 proc

sdb의 proc 디렉토리
drwxr-xr-x.   2 root root    6 Dec 27 19:42 proc

 

chmod를 이용한 권한 설정 변경 

[root@localhost ~]# chmod 555 /test/sys /test/proc

 

그래도 해결 되지 않음 !


2. bin 과 lib64의 용량 차이 

- 뭔가 제대로 복사가 되지 않았다면??

 

[root@localhost ~]# ls -al /usr
total 148
drwxr-xr-x. 12 root root   144 Dec 18 02:26 .
dr-xr-xr-x. 23 root root  4096 Dec 27 19:27 ..
dr-xr-xr-x.  2 root root 32768 Dec 18 02:29 bin
drwxr-xr-x.  2 root root     6 Oct  9  2021 games
drwxr-xr-x.  3 root root    24 Dec 18 02:27 include
dr-xr-xr-x. 33 root root  4096 Dec 18 02:29 lib
dr-xr-xr-x. 47 root root 36864 Dec 18 02:29 lib64
drwxr-xr-x. 32 root root  4096 Dec 18 02:29 libexec
drwxr-xr-x. 12 root root   131 Dec 18 02:26 local
dr-xr-xr-x.  2 root root 16384 Dec 22 01:44 sbin
drwxr-xr-x. 99 root root  4096 Dec 18 02:29 share
drwxr-xr-x.  4 root root    34 Dec 18 02:26 src
lrwxrwxrwx.  1 root root    10 Oct  9  2021 tmp -> ../var/tmp


[root@localhost ~]# ls -al /test/usr
total 124
drwxr-xr-x. 12 root root   144 Dec 27 19:48 .
drwxr-xr-x. 18 root root   235 Dec 27 19:53 ..
dr-xr-xr-x.  2 root root 28672 Dec 18 02:29 bin
drwxr-xr-x.  2 root root     6 Oct  9  2021 games
drwxr-xr-x.  3 root root    24 Dec 18 02:27 include
dr-xr-xr-x. 33 root root  4096 Dec 18 02:29 lib
dr-xr-xr-x. 47 root root 28672 Dec 18 02:29 lib64
drwxr-xr-x. 32 root root  4096 Dec 18 02:29 libexec
drwxr-xr-x. 12 root root   131 Dec 18 02:26 local
dr-xr-xr-x.  2 root root 16384 Dec 22 01:44 sbin
drwxr-xr-x. 99 root root  4096 Dec 18 02:29 share
drwxr-xr-x.  4 root root    34 Dec 18 02:26 src
lrwxrwxrwx.  1 root root    10 Oct  9  2021 tmp -> ../var/tmp


2-1. 용량 으로 비교하기 

💢 du명령어 awk명령어 사용하기 

[root@localhost ~]# du -b /usr/bin/* | awk '{ print $2" "$1 }' | sort > ./dubinsda
[root@localhost ~]# du -b /test/usr/bin/* | awk '{ print $2" "$1 }' | sort > ./dubinsdb
[root@localhost ~]# diff -c ./dubinsda ./dubinsdb

✔ 이렇게 비교하니깐 /test경로가 붙어서 전부 다르다고 나옴 ! ㅋㅋㅋ
     vi로 들어가서 싹 지워줘야겠음 

 

-vi 로 /test경로 지워주기

[root@localhost ~]# vi bbb
:%s!/test!!
[root@localhost ~]# diff -c aaa bbb


똑같음... 뭐지?
- 용량은 다르지만 내용물이 같다? or 미세한 차이가 큰 차이를 만들다...


- ls로 퍼미션 비교하기 

[root@localhost ~]#  ls -al /usr/bin/ > ./lsbinsda
[root@localhost ~]#  ls -al /test/usr/bin/ > ./lsbinsdb
[root@localhost ~]#  diff -c lsbinsda lsbinsdb

 

결과가 같다....

 

✨ 다른  방법을 찾아봐야 할것 같습니다...


2-2. rsync로 성공한 디스크 장착해서 비교

 

알아낸 사실 

  1. 용량이 달라도 상관없음 

cp명령어로 복사한 /usr/bin용량

[root@localhost ~]# du -b /usr/bin
170484145       /usr/bin
[root@localhost ~]# du -b /test/usr/bin
170480049       /test/usr/bin


rsync명령어로 복사한 /usr/bin용량

[root@localhost ~]# du -b /usr/bin
170484145       /usr/bin
[root@localhost ~]# du -b /sdb/usr/bin
170953801       /sdb/usr/bin

💢용량이 달라도 부팅에는 영향을 주지 않음 ... 

 

✨용량이 다르다는것은 뭔가 파일이 복사 되지 않았거나, 누락 되거나, 손상되었을거라고 생각 했지만 그럴수도 있고 아닐수도 있지만 전혀 상관이 없다...


3. inode의 값이 다르다?

 

- 현재 공부중인 선에서는 inode의 값은 그 파일및 디렉토리의 정보 즉, 소유권, 액세스모드, 타임 스탬프, 파일의 종류 등을 담고 있다고한다.. 

- cp는 복사를 하게 되면 inode의 값이 변하지만 rsync는 값의 변화 보다는 유지하려고 노력한다고 한다. 

https://sangdal91.tistory.com/133

 

[리눅스] inode란 ?

inode 란 ? - 파일을 기술하는 디스크 상의 데이터 구조로서 파일의 데이터 블록이 디스크 상의 어느 주소에 위치하고 있는가와 같은 파일에 대한 중요한 정보를 갖고 있다. - 각각의 inode 들은 i-번

sangdal91.tistory.com

- sda의 정상 inode

[root@localhost ~]# stat /usr/bin
  File: /usr/bin
  Size: 32768           Blocks: 112        IO Block: 4096   directory
Device: 802h/2050d      Inode: 131         Links: 2
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:bin_t:s0
Access: 2023-12-27 19:18:47.523144797 -0500
Modify: 2023-12-18 02:29:51.153987623 -0500
Change: 2023-12-18 02:29:51.153987623 -0500
 Birth: 2023-12-18 02:26:23.828408336 -0500

[root@localhost ~]# stat /usr/lib64
  File: /usr/lib64
  Size: 36864           Blocks: 104        IO Block: 4096   directory
Device: 802h/2050d      Inode: 16777346    Links: 47
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:lib_t:s0
Access: 2023-12-27 19:45:17.403283226 -0500
Modify: 2023-12-18 02:29:51.019989430 -0500
Change: 2023-12-18 02:29:51.019989430 -0500
 Birth: 2023-12-18 02:26:23.862407924 -0500

- sdb의 비정상 inode

[root@localhost ~]# stat /test/usr/bin
  File: /test/usr/bin
  Size: 28672           Blocks: 96         IO Block: 4096   directory
Device: 812h/2066d      Inode: 34242624    Links: 2
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:bin_t:s0
Access: 2023-12-27 19:51:12.327562166 -0500
Modify: 2023-12-18 02:29:51.153987623 -0500
Change: 2023-12-27 19:48:04.389084184 -0500
 Birth: 2023-12-27 19:48:04.214086487 -0500

[root@localhost ~]# stat /test/usr/lib64
  File: /test/usr/lib64
  Size: 28672           Blocks: 88         IO Block: 4096   directory
Device: 812h/2066d      Inode: 33590726    Links: 47
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:lib_t:s0
Access: 2023-12-27 23:03:10.632182790 -0500
Modify: 2023-12-18 02:29:51.019989430 -0500
Change: 2023-12-27 19:48:06.784052646 -0500
 Birth: 2023-12-27 19:48:06.295059086 -0500

 

✨ inode가 rsync도 바뀌는건 마찬가지이다... 그리고 cp도 어떤 옵션을 주냐에 따라서 inode를 최대한 유지 시킬수 있다. 

 

728x90

댓글