Как использовать autossh для настройки простого -socks-прокси?

Две точки:

  • Во-первых, по умолчанию rsync работает через SSH. Это медленно . Проверьте вывод top или htop и вы, вероятно, увидите что-то вроде этого:
    top - 18:04:39 up 113 days,  3:47,  3 users,  load average: 0,50, 0,59, 0,62
    Tâches: 489 total,   4 en cours, 485 en veille,   0 arrêté,   0 zombie
    %Cpu(s): 40,7 ut, 14,5 sy,  0,0 ni, 36,3 id,  3,4 wa,  0,0 hi,  5,1 si,  0,0 st
    MiB Mem :   7976,3 total,    212,8 libr,   2717,9 util,   5045,7 tamp/cache
    MiB Éch :   8583,0 total,   8381,2 libr,    201,8 util.   4598,0 dispo Mem 

      PID UTIL.     PR  NI    VIRT    RES    SHR S  %CPU  %MEM    TEMPS+ COM.                                                                                                             
    27262 emmanuel  20   0   33956   7924   4204 R  58,3   0,1   0:21.51 ssh                                                                                                              
    31185 emmanuel  20   0   52164   3208   2140 S  35,1   0,0   0:05.03 rsync                                                                                                            
    27249 emmanuel  20   0 1340140 158896  45432 S   8,9   1,9   4:40.63 python2                                                                                                          
       52 root      20   0       0      0      0 R   6,3   0,0   9:51.41 kswapd0                                                                                                          
    25149 root      20   0  324716 126192  63120 S   2,0   1,5  25:26.24 Xorg                                                                                                             
    25679 emmanuel  20   0 2555068 774108 100220 S   1,3   9,5   9:28.86 WebExtensions                                                                                                    

Обратите внимание, что rsync+ssh почти полностью загружает один ЦП?

  • Во-вторых, мы не знаем тип и скорость вашего целевого массива; его нормальная скорость записи может быть ужасной, например, если это аппаратный RAID-контроллер с отключенным кэшированием записи -.

Как повысить производительность:

  • Для начальной копии не используйте rsync . Серьезно. rsync отлично подходит для синхронизации данных. Но для копии в сторону и пустой цели это отстой. Это намного, намного медленнее, чем старый добрый cp . Итак, мой совет::используйте cp поверх NFS , и вы максимально загрузите свое оборудование (, какая бы часть ни была самой медленной, целевой RAID или сеть ).

  • На целевом сервере отредактируйте /etc/exports:

    /mnt/raid *(rw,async,no_root_squash,no_subtree_check)

Запустить NFS:systemctl restart nfs-kernel-server

  • На исходной машине смонтировать экспорт:

mount <server IP>:/mnt/raid /mnt/target

Затем скопируйте все:

cp -av /mnt/source /mnt/target

Предпочтительно использовать экран или tmux для запуска вашей копии и предотвращения несчастных случаев (потеря соединения ssh и т. д. ).

  • Альтернативное решение :, если NFS недоступен или какой-либо другой протокол обмена файлами (CIFS/SMB, Fuse -FTP, WebDav...), тогда лучше всего использовать netcat в сочетании с tar . Важно не шифровать трафик:

На целевой машине запустите сервер netcat :

cd /mnt/target ; nc -l -p 45724 | tar x

На исходной стороне запустите это:

cd /mnt/source; tar cf - * | nc <target IP> 45724
3
26.01.2017, 13:25
2 ответа

Я нашел ответ здесь и использовал следующую команду

autossh -f -M 5731 -D localhost:1234 -N user@ip
1
27.01.2020, 21:30

Объяснение ответа Fingerpich:

  • autossh -fзаставляет autossh переходить в фоновый режим перед запуском ssh.

  • -Mуказывает порт мониторинга для использования autossh.

  • -Dуказывает порт локального прокси-сервера socks

  • -Nуказывает не выполнять удаленную команду. это полезно только для перенаправления портов

Если вы не хотите использовать порт мониторинга, следующая команда вместо этого использует SSH Keep -активным каждые 10 секунд для обнаружения сбоя:

autossh -f -M 0 -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -D localhost:1234 -N user@ip.address
2
26.03.2020, 21:31

Теги

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