Pois é mas acredito que tem como melhorar porque demora quase 30 minutos para fazer o umount no meu pendrive sandisk 2.0 ate criei uma progress bar que roda enquanto o umount esta rodando para que o usuario não pense que travou.
Isso é normal, como funciona a cache de disco.
Primeiro vc da o comando de realizar a copia, o kernel pergunta a controladora do pendrive o estado do pendrive e ai começa a copia, para adiantar o processo para que o usuário não fique esperando a copia terminar a vida toda antes de fazer as suas atividades cotidianas o Linux copia o máximo que ele conseguir do arquivo a ser gravado no pendrive para a memória RAM que é mais rápida que o chip de memória do pendrive, e assim que a copia para a memória termina o arquivo fica disponível no pendrive para o usuário usa-lo em suas atividades cotidianas normalmente, mas a gravação ela não foi concluída, o que está na memória RAM ainda tem que ser terminado a transferência mas o usuário nem percebe que ainda está sendo gravado. É por isso que o umount não permite vc desmontar, é porque a copia não foi concluída.
É assim que funciona a cache, se vc desabilitar a cache o Linux não vai copiar nenhum bit para a RAM a gravação será em tempo real e vc não vai ter acesso ao arquivo enquanto a gravação não terminar.
E esquece, não adianta vc dançar para chover, nem tomar banho de agua fria e nem beber agua de coco, é uma limitação de hardware, o hardware não vai magicamente concluir de uma vez porque vc fez a dança da chuva.
A memória flash NAND do pendrive é de baixo desempenho, é por isso que eu tenho comprado SSD e case USB para colocar o SSD dentro do case USB para eu poder usar o SSD como pendrive, a qualidade do chip de memória de SSD tem um desempenho muito superior, podendo as vezes superar o limite de banda da USB 3.0 que é de 500 MB/s.
Pois é a impresão que tenho é que o windows é mais rapido para copiar para pendrives antigos talvez seja so impressão mesmo, e quando uso um pendrive 3.0 ou ssd externo o umount é quase instantaneo no pinguin, o importante é que o script esta funcional no mais melhorar uma coisinha aqui outra ali.
É a mesma coisa, só que por padrão o Windows deixa a cache de disco desabilitada para pendrive e no Linux fica habilitada, então o Linux dependendo de quanta RAM tenha disponível para ser usada de cache termina bem antes, agora se habilitar a cache do Windows ai tem diferença praticamente nenhuma, mas o Windows ele come banda dos dispositivos de armazenamento sem motivo algum, o conhecido HD 100%, isso pode fazer com que demore mais no Windows do que no Linux.
Eu tenho até raiva do NTFS, nem um bug de HD 100% a Microsoft não resolveu, come que pode.
Porque o desempenho é superior, em pendrive 2.0 a gravação é 5MB/s e em pendrive 3.0 sobe por volta de uns 20 ou 30 talvez 50 e em SSD sobe para até 500MB/s que ai já é limitação da USB3.0 e não do SSD.
@sparrow para otimizar, vc pode escrever um código que detecte se é USB 2.0 e se verdadeiro desabilitar a cache de disco, e se for falso mantenha a cache de disco evitando de fazer chamada do hdparm que é mais lento que o if.
Mas é igual eu falo, isso é tudo escovação de bits.
A vc coloco o link da pagina da licença, está certo. @sparrow
@sparrow O livro, Shell Script Profissional Livro por Aurelio Marinho Jargas
diz que as variáveis globais devem ser colocadas em maiúscula(para diferenciar de variáveis locais minúsculas). São as variáveis a seguir:
# Configuration
log="windusb_log.txt"
usb_mount_point="/run/media/wind21192/"
base_url="https://sourceforge.net/projects/sevenzip/files/7-Zip/"
# Packages for different distributions
debian_packages=("curl" "wget" "ntfs-3g" "gdisk")
fedora_packages=("curl" "wget" "ntfs-3g" "gdisk")
arch_packages=("curl" "wget" "ntfs-3g" "gptfdisk")
As variáveis local deve ser setadas com local antes do nome da variável, sem isso elas são variáveis globais.
A convenção do GNU/Linux é que logs de programas do sistema devem ficar em /var/log.
Uma boa pratica é de que as linhas não devem passar de 79 caracteres incluindo espaço, e tem linhas passando.
O cat não é built-in, era melhor usar o echo que é built-in.
Se é para ficar usando clear, não é melhor usar redirecionamento do stdin para o buraco negro? vc mostra o banner uma só vez e o resto vai para buraco negro.
Este tópico foi fechado automaticamente. Novas respostas não são mais permitidas.