이 명령을 사용하여 설치했습니다
mount -t cifs -o username=xxx password = xxx //server_address //data_directory
불행하게도 이 마운트는 IT 서버 유지 관리로 인해 손상되는 경우가 많아 다시 마운트해야 합니다. 나는 위의 명령을 사용하여 매일 cronjob에서 마운트를 다시 실행하기로 결정했습니다.
마운트는 여전히 작동하지만 를 실행하면 findmnt
내 디렉토리에 10개의 마운트가 있고 모두 서로 중첩되어 있는 것처럼 보입니다. 이런 일이 발생한 사람이 있습니까?
마운트를 "덮어쓰거나" 마운트가 현재 존재하지 않는 경우 마운트 명령을 실행하려면 어떻게 해야 합니까?
매우 감사합니다
답변1
umount /path/to/data_directory
그럼 mount
다시
또는
-o remount
설치 명령에 추가하기만 하면 됩니다.
답변2
자동 설치 프로그램을 사용하세요. 설치를 사용하지 않을 때는 자동으로 제거되고, 다시 사용하고 싶을 때 다시 설치되도록(투명하게) 설정하세요.
이것을 원격 서버에 있는 것과 결합 deadtime
하면 좋습니다.
자동 설치 프로그램 이 있지만 systemd
사용하지 않았습니다. 다음은 내 자신의 시스템 중 일부에서 실행하는 것입니다.
존재하다
/etc/auto.master
/var/autofs/misc /etc/auto.misc --timeout 600
그런 다음
mkdir /var/autofs/misc
일회성 작업으로존재하다
/etc/auto.misc
rShare -fstype=cifs,credentials=/usr/local/etc/cifs.secret,noperm,vers=3.0,iocharset=utf8 ://remoteServer/remoteShare
그런 다음 루트가 소유한 파일에 자격 증명을 넣고
/usr/local/etc/cifs.secret
루트만 읽을 수 있는지 확인하세요.chown root.root /usr/local/etc/cifs.secret chmod 600 /usr/local/etc/cifs.secret
마지막으로 디렉토리를
/var/autofs/misc/rShare
액세스하려는 파일 시스템의 실제 위치에 심볼릭 링크합니다. 예를 들어 일반적으로 사용하는 경우/path/to/data
다음을 사용합니다.cd /path/to # Parent of old mountpoint rmdir data # Delete old directory ln -s /var/autofs/misc/rShare data # Symlink from autofs
이제부터 마운트나 마운트 내에서 파일이나 디렉터리를 참조하면 /path/to/data
필요에 따라 활성화됩니다. 유휴 시간 10분(600초)이 지나면 자동으로 제거됩니다. 모든 것이 투명합니다.
답변3
다시 설치하기 전에 설치 여부를 확인하시기 바랍니다. 인수 없이 실행하면 mount
grep으로 파이프할 수 있는 현재 마운트 지점 목록이 제공됩니다.
예를 들어 grep
:
if ! mount | grep -q //data_directory ; then
mount -t cifs -o username=xxx password = xxx //server_address //data_directory
fi
이 내용은 한 줄로 단축할 수 있습니다.
mount | grep -q //data_directory || mount -t cifs -o username=xxx password = xxx //server_address //data_directory
,를 사용하여 출력의 필드 3에서 정확한 일치를 수행할 수도 있습니다. awk
(검색 문자열이 행의 어느 곳에나 나타나는지 테스트합니다. 이는 기본적으로 충분하지만 완벽하지는 않습니다.)mount
grep
if ! mount | awk -v ec=1 '$3 == "//data_directory" {ec=0; last}; END {exit ec}' ; then
...
fi
(이를 위해서는 GNU awk, mawk 또는 이 명령문을 이해하는 다른 last
버전의 awk가 필요합니다.)
rsync
그런데 유사한 백업 스크립트에 파일 시스템이 이미 마운트되어 있는지 확인하는 것은 대상 디렉터리가 별도로 마운트된 파티션이거나 네트워크 마운트로 가정되는 경우 특히 유용합니다. 대상이 마운트되지 않은 경우 백업 스크립트가 오류 메시지를 인쇄하고 중단하도록 하려고 합니다. 그렇지 않으면 백업이 잘못된 파일 시스템에서 공간을 차지하게 됩니다(그리고 마운트 지점 뒤에 숨겨져 있으므로 나중에 알아차리지 못할 수도 있습니다). 올바르게 설치된 경우 대상 디렉토리).
(어떻게 알 수 있나요? 백업 스크립트를 작성할 때 실수를 했고 rsync 등을 실행하기 전에 확인하지 않았기 때문에... 루트 파일 시스템이 자체 복사본으로 채워졌습니다.)