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

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

아래 질문: 파일을 복사하기 위해 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 사용률 문제를 완화할 수 있습니다. 프로세스를 자제하는 것은 좋은 생각이 아닙니다.

관련 정보