새로운 하드 디스크로 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로 성공한 디스크 장착해서 비교
알아낸 사실
- 용량이 달라도 상관없음
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를 최대한 유지 시킬수 있다.
'리눅스 > 서버운영' 카테고리의 다른 글
[리눅스] inode (1) | 2023.12.29 |
---|---|
[리눅스] rsync (0) | 2023.12.28 |
[리눅스] 파티션 복사 실습③ (rsync로 해결) (1) | 2023.12.26 |
[리눅스] 파티션 복사 실습② (원인파악중..) (0) | 2023.12.22 |
[리눅스] 파티션 복사 실습① (부팅중 에러 발생) (0) | 2023.12.07 |
댓글