Linux 운영 및 유지 관리 과정에서 사전 계획 없이 애플리케이션의 저장 디렉터리가 꽉 차서 디렉터리나 디스크를 확장할 수 없는 경우가 종종 발생합니다. 이때 우리의 일반적인 해결책은 소프트를 만드는 것입니다. link, through ln, 이는 원래 저장된 디렉터리를 다른 대용량 디스크의 디렉터리에 소프트 링크하여 수행됩니다.
소프트 링크의 단점은 소프트 링크를 여러 겹으로 쌓으면 어지러워서 오작동이 발생하기 쉽다는 것입니다
마운트 명령 조작 및 유지보수 친구들은 익숙할 것이므로 너무 많이 소개하지는 않겠습니다
먼저 man의 소개부터 보시죠
mount –bind를 통해 파일 디렉터리 구조를 다시 마운트하고 두 디렉터리를 연결할 수 있습니다. 이는 이전 디렉터리에 후자 디렉터리에 대한 모든 액세스는 실제로 이전 디렉터리에 대한 액세스입니다.
파일의 inode 보기
mount –bind를 통해 test1을 test2로 마운트하고 inode와 디렉터리 내용을 다시 확인하세요
아이노드 번호와 파일이 모두 test1인 것을 확인할 수 있습니다
그런 다음 test2 디렉터리에 있는 파일에 액세스하고 수정합니다. 실제로 변경된 것은 test1 디렉터리입니다. 우리는 test2 디렉터리에 파일을 만듭니다. 그러면 mount에 연락한 후 다음 두 디렉터리의 내용을 확인하겠습니다 test1 디렉터리는 수정된 상태로 남아 있고, test2 디렉터리 파일은 여전히 존재하며 변경되지 않은 상태로 유지되는 것을 볼 수 있습니다
), 즉, test2의 하위 레벨 경로가 숨겨져 있습니다(참고, 단지 숨길 뿐 삭제되지는 않으며 데이터가 변경되지 않았으며 단지 액세스할 수 없습니다). 동시에 커널은 마운트 디렉토리(test1)의 디렉토리 항목을 메모리의 s_root 객체에 기록합니다. mount 명령이 실행되면 VFS는 전체 마운트 정보를 포함하는 vfsmount 객체를 생성합니다. 이 개체는 HASH 값 대응 테이블입니다(HASH 값은 경로 문자열을 계산하여 계산됨). 이 테이블에는 /test1부터 두 디렉터리 사이의 HASH 값 대응이 포함됩니다. /test2 명령이 실행된 후 /test2 아래의 파일에 액세스할 때 시스템은 /test2의 디렉토리 항목이 차단되었음을 알리고 자동으로 메모리로 이동하여 VFS를 찾고 다음을 통해 /test2와 /test1 사이의 해당 관계를 학습합니다. vfsmount, 따라서 /test1의 inode를 읽어 /test2 아래에서 읽은 모든 파일이 /test1 디렉터리에 있는 파일이 되도록 합니다
임시 구성 파일 읽기 테스트
일부 응용 프로그램 시나리오에서는 테스트를 위해 구성 파일을 수정해야 하지만 실행 중인 비즈니스에 영향을 미칠 수 없습니다. 확실하지 않고 원본 구성 파일을 직접 수정하고 싶지 않은 경우 /tmp 및 기타 디렉터리에 쓸 수 있습니다. . 테스트 구성 파일은 mount –bind를 통해 구성 파일 읽기 디렉터리에 마운트되며, 실행 중인 프로그램은 테스트가 완료된 후 umount만 필요하며 이는 원래 구성에 영향을 미치지 않습니다.
읽기 전용 마운트
예를 들어 개발자에게 일부 구성을 볼 수 있는 권한을 부여해야 하지만 구성 수정을 허용하지 않는 경우 mount –bind,ro를 통해 읽기 전용 디렉터리를 마운트할 수 있습니다. 원래 디렉터리는 쓰기 가능합니다. 디렉토리는 읽기 전용이므로 개발자에게 읽기 전용 디렉토리 권한만 부여하면 됩니다
위 내용은 Linux에서 파일을 읽기, 쓰기 및 읽기 전용으로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!