Eu apaguei acidentalmente um arquivo enquanto ele ainda é transferido via SCP. O que acontece?

1

Eu criei um arquivo .tar.gz para fins de backup. Enquanto ainda está no meio de ser transferido via SCP (é um arquivo de 6 GB), eu o apaguei acidentalmente na sessão SSH.

A transferência SCP ainda está em execução. O que acontece nesse caso? O arquivo estará ok? Por quê? Será quebrado? Em caso afirmativo, por que a transferência de arquivos não é interrompida?

    
por Thomas Weller 11.01.2018 / 22:13

2 respostas

1

scp copia seu arquivo sem problemas.

Se você excluir um filme que é aberto por um processo, apenas o nome do arquivo será removido, mas o arquivo ainda existirá. Você pode acessar o arquivo excluído por meio de um link simbólico em /proc/$PID/fd , em que $PID é o ID do processo usando o arquivo.

    
por Florian Diesch 11.01.2018 / 22:29
0

Eu tive uma ótima ideia e acho que descobri:

# lsof | grep www
sftp-serv 2490  root  3r  REG  253,0 6878784186   14549364 /mnt/var/www.tar.gz (deleted)

Para mim, isso significa que o SCP ainda está acessando o arquivo e ainda tem um identificador de arquivo válido. Para qualquer outra pessoa, o arquivo é excluído conforme indicado entre parênteses. Portanto, ninguém mais obterá um identificador de arquivo válido para esse identificador de arquivo excluído.

Agora, desde que o download do SCP foi concluído, eu pude verificar novamente:

# lsof | grep www

Observe que o resultado está vazio, o identificador de arquivo foi fechado.

No meu cliente, consegui descompactar o arquivo .tar.gz com o 7Zip (Windows). Não se queixou de checksums quebrados ou qualquer outra coisa. Isso suporta a teoria acima.

Muito bem, Linux!

    
por Thomas Weller 11.01.2018 / 22:25