Por mais que eu goste de python, isso não é realmente um caso para o qual é necessário. O problema aqui é que quando uma conexão smb falha, as operações cp congelam ao invés de terminarem. Nem o python nem o bash detectarão isso.
Então, você pode iniciar todos os trabalhos em paralelo
user@host:~$ for dest in /media/Client_{1,2,3,4}; do cp -f sourcepath/* $dest & done
Mas isso provavelmente vai sufocar sua rede. Uma opção melhor pode ser deixar o CP executar por uma duração esperada e depois matá-lo se tiver congelado
user@host:~$ for dest in /media/Client_{1,2,3,4}; do timeout -k 9 30m cp -f sourcepath/* $dest; done
O qual irá matar o comando cp
com SIGKILL
(sinal 9) após 30 minutos se ele estiver desativado.
No entanto, se precisar reiniciar a transferência for um problema freqüente, você provavelmente usará rsync
em vez de cp
, o que verificará o que já foi copiado e continuará onde quer que tenha chegado.