Как работать на хосте через MacOS быстро?

1 23
coolwebsearcher
На сайте с 29.09.2008
Offline
87
#21
'[umka:
;15616476']
Для этого в FTP-клиенте нужно выбрать протокол SFTP, и удаление будет занимать столько же времени, сколько в терминале или в онлайновом файл-менеджере.

в sftp тоже нет рекурсивного удаления ;)

Услуги (http://www.our-dns.info/) | Цены (http://www.our-dns.info/prices/) | Отзывы (/ru/forum/970789)
[umka]
На сайте с 25.05.2008
Offline
456
#22
coolwebsearcher:
в sftp тоже нет рекурсивного удаления ;)

А я и не говорил, что оно там есть.

Лог в помощь!
coolwebsearcher
На сайте с 29.09.2008
Offline
87
#23

тогда как понимать ваше сообщение о том, что удаление через sftp будет занимать "столько же времени, сколько в терминале" ?

В терминале (через shell) будет быстрее :)

[umka]
На сайте с 25.05.2008
Offline
456
#24
coolwebsearcher:
тогда как понимать ваше сообщение о том, что удаление через sftp будет занимать "столько же времени, сколько в терминале" ?

В терминале (через shell) будет быстрее :)

SFTP = SSH FTP

При использовании SFTP директория удалится системной командой rm.

Время на обход дерева посредством FTP затрачено не будет.

SFTP имеет общее с FTP лишь то, что поддерживается в FTP-клиентах.

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#25

[umka] нет, в протоколе sftp рекурсивное удаление директории для сервера выглядит так - получение списка файлов, удаления каждого файла отдельно, после того, как директория станет пуста - удаляется директория. (справедлило для sftp клиентов lftp, transmit, cyberduck, winscp).

Это и потверждает лог удаления

с стороны fxp клиента (lftp):


rm -rf test100
rm ok, 5001 files removed

со стороны сервера


May 26 20:02:06 debian9 sftp-server[27324]: opendir "/home/test_ftp"
May 26 20:02:06 debian9 sftp-server[27324]: closedir "/home/test_ftp"
May 26 20:02:15 debian9 sftp-server[27324]: opendir "/home/test_ftp/test100"
May 26 20:02:15 debian9 sftp-server[27324]: closedir "/home/test_ftp/test100"
May 26 20:02:15 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0001"
May 26 20:02:15 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0002"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0003"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0004"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0005"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0006"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0007"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0008"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0009"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0010"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0011"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0012"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0013"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0014"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0015"
May 26 20:02:16 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/0016"
....
....
....
May 26 20:03:26 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/4997"
May 26 20:03:26 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/4998"
May 26 20:03:26 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/4999"
May 26 20:03:26 debian9 sftp-server[27324]: remove name "/home/test_ftp/test100/5000"
May 26 20:03:26 debian9 sftp-server[27324]: rmdir name "/home/test_ftp/test100"

Копирование директорий, в winscp сделано не через sftp протокол (это ихняя фича, которой нет, в других реализациях sftp клиентов).

[umka]
На сайте с 25.05.2008
Offline
456
#26

coolwebsearcher, всё верно, рекурсивное удаление выглядит именно так.

Только в случае с SFTP этим обходом занимается сервер, а в случае с FTP этим занимается сам клиент, тратя на это кучу времени.

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#27

[umka], В случае с sftp этим обходом занимается sftp клиент

На клиенте это выглядит так


<--- got a packet, length=24, type=101(STATUS), id=5057
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4989'
---> sending a packet, length=36, type=13(REMOVE), id=5058
<--- got a packet, length=24, type=101(STATUS), id=5058
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4990'
---> sending a packet, length=36, type=13(REMOVE), id=5059
<--- got a packet, length=24, type=101(STATUS), id=5059
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4991'
---> sending a packet, length=36, type=13(REMOVE), id=5060
<--- got a packet, length=24, type=101(STATUS), id=5060
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4992'
---> sending a packet, length=36, type=13(REMOVE), id=5061
<--- got a packet, length=24, type=101(STATUS), id=5061
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4993'
---> sending a packet, length=36, type=13(REMOVE), id=5062
<--- got a packet, length=24, type=101(STATUS), id=5062
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4994'
---> sending a packet, length=36, type=13(REMOVE), id=5063
<--- got a packet, length=24, type=101(STATUS), id=5063
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4995'
---> sending a packet, length=36, type=13(REMOVE), id=5064
<--- got a packet, length=24, type=101(STATUS), id=5064
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4996'
---> sending a packet, length=36, type=13(REMOVE), id=5065
<--- got a packet, length=24, type=101(STATUS), id=5065
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4997'
---> sending a packet, length=36, type=13(REMOVE), id=5066
<--- got a packet, length=24, type=101(STATUS), id=5066
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4998'
---> sending a packet, length=36, type=13(REMOVE), id=5067
<--- got a packet, length=24, type=101(STATUS), id=5067
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/4999'
---> sending a packet, length=36, type=13(REMOVE), id=5068
<--- got a packet, length=24, type=101(STATUS), id=5068
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123/5000'
---> sending a packet, length=36, type=13(REMOVE), id=5069
<--- got a packet, length=24, type=101(STATUS), id=5069
---- status code=0(OK), message=Success
---- path on wire is `/home/test_ftp/test123'
---> sending a packet, length=31, type=15(RMDIR), id=5070
<--- got a packet, length=24, type=101(STATUS), id=5070
---- status code=0(OK), message=Success
rm ok, 5001 files removed

Как видно из лога удаление происходит через


sending a packet, length=36, type=13(REMOVE), id=5067

type=13(REMOVE) - это SSH_FXP_REMOVE

+ можно проверить - через sftp (как и через ftp) удаление большого кол-ва файлов занимает много времени. Чем больше файлов в директории, тем больше различие с временем удаления через shell.

[umka]
На сайте с 25.05.2008
Offline
456
#28

coolwebsearcher, пятёрка за тщание! :) А то я вот теоретизирую, а кнопки нажать лень.

Ну, теперь осталось разобраться, каким образом у ТС работает WinSCP, который всё удаляет моментально.

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#29

[umka], так разобрались вроде ;)

AlexMotoR1:
С удалением папок с множеством файлов - согласен, достаточно долго везде.
1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий