Como saber se o File Operations foi concluído via script bash?

1

Eu posso ter feito alguma operação de copiar / mover envolvendo arquivos grandes ou muitos arquivos. No bash eu gostaria de algum indício de que essa operação acabou. Existe alguma coisa que eu possa fazer?

No começo eu pensei, esperar em um pid deveria fazer o truque. Assim, durante uma dessas operações, eu corri top e descobri que mount.ntfs estava tomando a maior parte da cpu. No entanto, publique esta operação de arquivo (depois que a caixa de diálogo desaparecer automaticamente) que o processo ainda está em execução.

Por isso descartei essa. Alguma idéia de como eu posso saber quando meu sistema operacional rejeitou esse diálogo?

    
por deostroll 15.01.2018 / 13:08

5 respostas

1

  • O primeiro passo é verificar se a operação de cópia foi concluída. Acho que você já verificou essa etapa.

  • A segunda etapa é verificar se os buffers estão liberados (que os dados armazenados em buffer na RAM são finalmente gravados no dispositivo de destino, para que o conteúdo do arquivo seja realmente armazenado em um arquivo em uma partição na unidade).

    Você pode executar sync para liberar os buffers. Quando sync é concluído e bash retorna para prompt, esta segunda etapa também foi concluída.

  • Existe uma ferramenta para monitorar as atividades de leitura / gravação, iotop . Instale-o com

    sudo apt install iotop
    

    e executá-lo, por exemplo, com a seguinte linha de comando

    sudo iotop -o
    
por sudodus 15.01.2018 / 13:40
0

Sem ver o script real, é difícil saber que tipo de comando você está usando para as operações de arquivo.

Uma opção muito simples poderia ser simplesmente criar um arquivo temporário quando a ação de copiar / mover estiver concluída, como esta

#copy action

cp  /home/user/backup/
touch /tmp/finished.tmp

e, em seguida, verifique se o arquivo está lá ou se há alterações recentes com

ls -lha /tmp/finished

ou para uma verificação periódica automática

watch ls -lha /tmp/finished

Dependendo de suas necessidades, você poderia nomear cada arquivo temporário como o trabalho de copiar / mover que ele representa, talvez todos no mesmo diretório

# set the variable JOBNAME via input or via sourcename
# JOBNAME=$SOURCE
# JOBNAME=
mkdir /tmp/copyjobs

# your copy job here

touch /tmp/copyjobs/finished.$JOBNAME.tmp

# your next copy job here 

touch /tmp/copyjobs/finished.$JOBNAME.tmp

Assista o diretório inteiro

watch ls -lha /tmp/copyjobs/

Dependendo da sua habilidade, você também pode usar loops e assim por diante.

Ferramentas como rsync têm uma barra de progresso incorporada para a linha de comando, para que você possa ver a extensão de seu trabalho com - progresso ou -P .

Mas o rsync pode não ser a ferramenta certa para o trabalho.

    
por Robert Riedl 15.01.2018 / 14:53
0

"gcp" é seu amigo:)

É disso que você precisava?

$ gcp -rf test.file tmp/
Copying 404.32 MiB 100% |############################| 471.12 MB/s Time: 0:00:00
    
por SloppyPenguin 19.01.2018 / 04:25
0

Suponha que você use cp, o processo pode iniciar um segundo

cp SOURCE TARGET 
ALERTCOMMAND

Não existe um comando de alerta pré-definido, mas você pode emitir o que tiver e parecer apropriado, talvez reproduzir um trecho de áudio com um player de áudio para aumentar o reconhecimento. Nos tempos antigos, quando as pessoas tinham unidades ópticas, abri-las com o comando ejetar também era uma opção. :)

cp SOURCE TARGET && FANFARE || REQUIEM 

Mais uma vez, não existe tal comando como FANFARE ou REQUIEM. Dependendo do sucesso ou falha, você pode emitir comandos diferentes na mesma linha. Seja criativo. Na mesma área de trabalho virtual, um novo programa que está surgindo aumenta a conscientização - veja man zenity por exemplo. Ou use xmessage :

cp SOURCE TARGET && xmessage "Done"
    
por user unknown 20.01.2018 / 10:29
0

Verifique o código-fonte para progress_bar no repositório git abaixo:

link

Experimente também o pacote de scripts personalizado supremo

Faça o download do arquivo deb do repositório acima e instale-o em sistemas baseados no Debian.

Visão geral da funcionalidade

(1) Aplicativos abertos ----Raposa de fogo ----Calculadora ---- Configurações

(2) Gerenciar arquivos ----Procurar ----Navegar ---- Acesso rápido

            |----Select File(s)
            |----Inverse Selection
            |----Make directory
            |----Make file
                                          |----Open
                                          |----Copy
                                          |----Move
                                          |----Delete
                                          |----Rename
                                          |----Send to Device
                                          |----Properties

(3) Gerenciar telefone ---- Mover / Copiar do telefone ---- Mover / Copiar para o telefone ---- Pastas de sincronização

(4) Gerenciar USB ---- Mover / Copiar de USB ---- Mover / Copiar para USB

    
por KIRAN B 10.09.2018 / 17:05