coolwebsearcher

coolwebsearcher
Рейтинг
87
Регистрация
29.09.2008
Vitaly2012:
О, тут пришла идейка, если сделать https еще на один домен, поставить его <VirtualHost *:443> выше, чтобы https://site1.com, https://site2.com открывались на него. А там поставить пустышку, какой-нибудь index.php, тогда по идее при открытии всех сайтов по https будет видно пустую страницу. Попробую завтра...

да, обычно так и делают, как для http, так и для https

Создают дефолтный субдомен, с пустым index.html

тогда при заходе по ип, или по имени, которого нет в виртуалхостах, будет открываться пустая страница.

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

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

[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] нет, в протоколе 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 клиентов).

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

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

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

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

winscp некоторые операции делает через shell

К примеру duplicate для сервера выглядит как


May 25 17:23:10 debian9 snoopy[32745]: [uid:1002 sid:32745 tty:(none) cwd:/home/test_ftp filename:/bin/bash]: -bash
May 25 17:23:10 debian9 snoopy[32747]: [uid:1002 sid:32745 tty:(none) cwd:/home/test_ftp filename:/usr/bin/id]: id -u
May 25 17:23:10 debian9 snoopy[32748]: [uid:1002 sid:32745 tty:(none) cwd:/home/test_ftp filename:/usr/bin/printenv]: printenv LANG
May 25 17:23:11 debian9 snoopy[32749]: [uid:1002 sid:32745 tty:(none) cwd:/home/test_ftp filename:/bin/cp]: cp -p -r -f -T test4 /home/test_ftp/test100

Так если открывается ssh сессия на сервер, и выполняется команда копирования через shell.

Это скорее всего уникальная фича winscp и к поддержке sftp протокола отношения не имеет.

Если ваш сервер отдает ошибку, то эта ошибка должна быть в логе вебсервера.

Есть смысл проверить настройки https (вкладка Crypto на cloudflare)

+ на стороне сервера http -> https перенаправления (если они есть)

+ проверить, что возвращает бакенд и фронтенд, при запросе по http / https

AlexMotoR1:

Зачем так усложнять жизнь, в WinSCP всё классно - нажал удалить - удалило, нажал скопировать - скопировало. И не важно какой обьем практически. Так же как командами быстро всё делается, но только в графической оболочке. Вот то же под мак надо)

Протокол sftp используется?

Для сервера в данном случае разницы нет, такой лог на стороне сервера имеет winscp, transmit или cyberduck.


May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/07745"
May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/00928"
May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/08962"
May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/07525"
May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/04589"
May 23 13:25:41 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/03604"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/06965"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/03452"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/00416"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/01242"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/05577"
May 23 13:25:42 debian9 sftp-server[14766]: remove name "/home/test_ftp/test/06868"

Как сказали выше, через ssh это будет на порядко быстрее (может не так удобно, но быстрее точно).

удаление 10к файлов примерно одинаковое время занимает (при удалении в разных клиентах по sftp).

sftp клиент получает список файлов, и каждый файл удаляется по одному.

учитывая повсеместный оверселлинг на услуги VDS, разница в 10 % для reg.ru "незначительна" ;)

хорошо, хоть второе ядро добавили ;)))

Всего: 172