Você deve tentar o rsync em vez do cp: rsync -avz linux_path /mnt/windows_share/
e crontab em vez do loop perl: crontab -e
e adicione a seguinte linha a ele:
* * * * * rsync -avz linux_path /mnt/windows_share/
Ele será executado a cada minuto, e se for uma opção no seu caso, é mais robusto que o loop while.