임시 오프라인인 자동 마운트 네트워크 공유

임시 오프라인인 자동 마운트 네트워크 공유

다음 문제: 파일을 복사하기 위해 Windows 네트워크 공유를 마운트해야 하는 서버가 있습니다. 그래서 fstab시작 시 마운트되도록 공유를 추가했습니다 .

 //192.168.1.xx/share   /mnt/networkshare   cifs    noperm,username=user,password=******    0   0

다음과 같이 공유에 파일을 복사하는 스크립트가 반복됩니다.

while [ true ]
  do
    if [ -f /path/to/the/file ]
    then
      mv /path/to/the/file /mnt/networkshare
    fi
done

문제는 Windows 컴퓨터가 아침에 시작할 때 밤에 종료된다는 것입니다. 첫째, 이 시간 동안 while [true] 스크립트로 인해 서버의 부하는 하나의 코어에 100%입니다. 둘째, Windows 컴퓨터를 시작한 후 마운트가 더 이상 작동하지 않는 경우가 있습니다. (모두 다시 마운트하기 위해 crontab이 * * * * * mount -a실행됩니다.) 파일이 복사되지 않으며 서버에서 마운트에 액세스할 수 없습니다. 다시 시작해야 합니다.

컴퓨터가 켜져 있는 동안 마운트가 항상 유지되도록 하려면 어떻게 해야 합니까? 어떻게든 공유를 해제해야 할까요? 매일 밤 마운트를 해제할 수 있지만 낮에 Windows 컴퓨터가 다시 시작되면 어떻게 되나요? 밤에 CPU 부하를 낮추기 위해 마운트가 없는 경우 while [true] 스크립트를 어떻게 일시 중지할 수 있습니까?

당신의 도움을 주셔서 감사합니다!

답변1

이동을 시도하기 전에 마운트를 확인할 수 있습니다.

df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
  mv /path/to/the/file /mnt/networkshare
fi

또한 sleep프로세스에 명령을 추가하면 100% CPU 사용률 문제를 완화할 수 있습니다. 쉬지 않고 프로세스를 망치는 것은 좋은 접근 방식이 아닙니다.

관련 정보