Я случайно удалил файл, пока он по-прежнему передается через SCP. Что происходит?

Я создал файл .tar.gz для целей резервного копирования. Хотя он все еще находится в середине передачи через SCP (это файл размером 6 ГБ), я случайно удалил его в сеансе SSH.

Передача SCP все еще запущена. Что происходит в этом случае? Будет ли файл в порядке? Зачем? Будет ли это нарушено? Если да, то почему прерывание передачи файлов отсутствует?

1
задан 12 January 2018 в 01:13

6 ответов

scp скопирует ваш файл без проблем.

Если вы удаляете фильм, который открывается процессом, удаляется только имя файла, но файл все еще существует. Вы можете получить доступ к удаленному файлу через символическую ссылку в /proc/$PID/fd, где $PID - это идентификатор процесса процесса с использованием файла.

1
ответ дан 22 May 2018 в 15:35

scp скопирует ваш файл без проблем.

Если вы удаляете фильм, который открывается процессом, удаляется только имя файла, но файл все еще существует. Вы можете получить доступ к удаленному файлу через символическую ссылку в /proc/$PID/fd, где $PID - это идентификатор процесса процесса с использованием файла.

1
ответ дан 17 July 2018 в 23:18

scp скопирует ваш файл без проблем.

Если вы удаляете фильм, который открывается процессом, удаляется только имя файла, но файл все еще существует. Вы можете получить доступ к удаленному файлу через символическую ссылку в /proc/$PID/fd, где $PID - это идентификатор процесса процесса с использованием файла.

1
ответ дан 24 July 2018 в 13:49

У меня была отличная идея, и я думаю, что сам понял:

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

Для меня это означает, что SCP по-прежнему обращается к файлу и по-прежнему имеет действительный дескриптор файла. Для кого-либо еще файл удаляется, как указано в круглых скобках. Таким образом, никто больше не получит корректный дескриптор файла для этого дескриптора удаленных файлов.

Теперь, когда загрузка SCP завершена, я могу проверить еще раз:

# lsof | grep www

Обратите внимание, что результат пуст, дескриптор файла был закрыт.

На моем клиенте я смог разархивировать файл .tar.gz с помощью 7Zip (Windows). Он не жаловался на сломанные контрольные суммы или что-то еще. Это поддерживает теорию.

Хорошо, Linux!

0
ответ дан 22 May 2018 в 15:35

У меня была отличная идея, и я думаю, что сам понял:

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

Для меня это означает, что SCP по-прежнему обращается к файлу и по-прежнему имеет действительный дескриптор файла. Для кого-либо еще файл удаляется, как указано в круглых скобках. Таким образом, никто больше не получит корректный дескриптор файла для этого дескриптора удаленных файлов.

Теперь, когда загрузка SCP завершена, я могу проверить еще раз:

# lsof | grep www

Обратите внимание, что результат пуст, дескриптор файла был закрыт.

На моем клиенте я смог разархивировать файл .tar.gz с помощью 7Zip (Windows). Он не жаловался на сломанные контрольные суммы или что-то еще. Это поддерживает теорию.

Хорошо, Linux!

0
ответ дан 17 July 2018 в 23:18

У меня была отличная идея, и я думаю, что сам понял:

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

Для меня это означает, что SCP по-прежнему обращается к файлу и по-прежнему имеет действительный дескриптор файла. Для кого-либо еще файл удаляется, как указано в круглых скобках. Таким образом, никто больше не получит корректный дескриптор файла для этого дескриптора удаленных файлов.

Теперь, когда загрузка SCP завершена, я могу проверить еще раз:

# lsof | grep www

Обратите внимание, что результат пуст, дескриптор файла был закрыт.

На моем клиенте я смог разархивировать файл .tar.gz с помощью 7Zip (Windows). Он не жаловался на сломанные контрольные суммы или что-то еще. Это поддерживает теорию.

Хорошо, Linux!

0
ответ дан 24 July 2018 в 13:49

Другие вопросы по тегам:

Похожие вопросы: