
siguiente problema: Tengo un servidor que necesita montar un recurso compartido de red de Windows para poder copiar un archivo en él. Así que agregué el recurso compartido fstab
para que se monte al inicio.
//192.168.1.xx/share /mnt/networkshare cifs noperm,username=user,password=****** 0 0
Un script se repite para copiar el archivo en el recurso compartido de esta manera:
while [ true ]
do
if [ -f /path/to/the/file ]
then
mv /path/to/the/file /mnt/networkshare
fi
done
El problema es que la computadora con Windows se apaga por la noche y comienza por la mañana. Primero, durante este tiempo, la carga en el servidor es del 100% en un núcleo debido al script while [true]. En segundo lugar, a veces el soporte ya no funciona después de iniciar la computadora con Windows. (Se ejecuta un crontab * * * * * mount -a
para montar todo nuevamente) Los archivos no se copian y no se puede acceder al montaje en el servidor. Es necesario reiniciarlo.
¿Cómo puedo asegurarme de que el soporte esté siempre ahí mientras la computadora está encendida? ¿Tal vez necesito desmontar de alguna manera la parte? Puedo desmontarlo todas las noches, pero ¿qué pasa si la computadora con Windows se reinicia durante el día? ¿Cómo puedo pausar el script while [true] si el soporte no está ahí para reducir la carga de la CPU durante la noche?
¡Gracias por tu ayuda!
Respuesta1
Puedes comprobar el soporte antes de intentar moverlo:
df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
mv /path/to/the/file /mnt/networkshare
fi
Además, agregar un sleep
comando en el proceso podría mitigar el problema de utilización del 100% de la CPU. Impulsar un proceso sin interrupción no es un buen enfoque.