
seguinte problema: Eu tenho um servidor que precisa montar um compartilhamento de rede do Windows para copiar um arquivo nele. Então adicionei o compartilhamento fstab
para que ele seja montado na inicialização.
//192.168.1.xx/share /mnt/networkshare cifs noperm,username=user,password=****** 0 0
Um script faz um loop para copiar o arquivo no compartilhamento assim:
while [ true ]
do
if [ -f /path/to/the/file ]
then
mv /path/to/the/file /mnt/networkshare
fi
done
O problema é que o computador Windows desliga à noite ao iniciar pela manhã. Primeiro, durante esse período, a carga no servidor é de 100% em um núcleo devido ao script while [true]. Em segundo lugar, às vezes a montagem não funciona mais após a inicialização do computador Windows. (um crontab * * * * * mount -a
é executado para montar tudo novamente) Os arquivos não são copiados e a montagem não está acessível no servidor. Ele precisa ser reiniciado.
Como posso ter certeza de que a montagem estará sempre lá enquanto o computador estiver ligado? Talvez eu precise de alguma forma desmontar o compartilhamento? Posso desmontá-lo todas as noites, mas e se o computador Windows for reiniciado durante o dia? Como posso pausar o script while [true] se a montagem não estiver disponível para menor carga da CPU durante a noite?
Obrigado pela ajuda!
Responder1
você pode verificar a montagem antes de tentar movê-la:
df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
mv /path/to/the/file /mnt/networkshare
fi
além disso, adicionar um sleep
comando no processo pode atenuar o problema de utilização de 100% da CPU. Martelar um processo sem interrupção não é uma boa abordagem.