Skip to content

Monthly Archives: Декабрь 2010

Python 3.2 будет заточен под многопоточность

Следующая версия широко используемого языка программирования Python будет иметь более широкую поддержку для написания многопоточных приложений.

На этой неделе разработчики Python выпустили первую бету версии 3.2. В этой версии они сосредоточились над исправлением ошибок и общих улучшениях при этом сохранив синтаксис и семантику языка, которые были определенны в версии Python 3.0.

Хоть этот pre-release и не готов к использованию в production, но он хорошо показывает то, чего следует ожидать от финального релиза, который будет выпущен в феврале. Среди новых функций есть новый пакет, объединяющий набор функций, которые могли бы облегчить процесс разработки многопоточных приложений для многоядерных процессоров.

«В настоящее время Python имеет мощные парадигмы для построения многопоточных и мультипроцессорных приложений, но распаралеливание простых задач требует больших затрат». Новая высокоуровневая библиотека concurrent, будет содержать набор классов, которые смогут облегчить многопоточную разработку, например асинхронно выполнять различные вызовы.

Python 3.2 также имеет и ряд других новых функций, в том числе улучшение SSL (Secure Sockets Layer) модуля, новый модуль для доступа к информации о конфигурации и расширения, а также много другое..

Оригинал

18 лучших возможностей SSH

1) Cкопировать SSH ключ на USER@HOST для настройки беспарольной авторизации

ssh-copy-id user@host

Для того чтобы сгенерировать ключи, воспользуйтесь командой ssh-keygen

2) Поднять туннель на 2001 локальном порту для доступа к 80 порту какой-либо машины

ssh -N -L2001:localhost:80 somemachine

Теперь вы можете получить доступ к сайту по ссылку http://localhost:2001/

3) Перенаправить вывод вашего микрофона на спикер другой машины

dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

Это перенаправит звук с вашего микрофона на спикер порт машины подключаемой по SSH.
Качество звука очень плохое, так что вы услышите много шума.

4) Сравнить файл на удаленной машине с локальной копией

ssh user@host cat /path/to/remotefile | diff /path/to/localfile —

Очень полезно для поиска различий между файлами на разных машинах.

5) Монтировать папки через SSH

sshfs name@server:/path/to/folder /path/to/mount/point

Правда для этого вам сначала надо будет установить SSHFS http://fuse.sourceforge.net/sshfs.html

6) ssh соединение через промежуточную машину

ssh -t reachable_host ssh unreachable_host

Unreachable_host не доступен из локальной сети, но он доступен через сеть reachable_host. Эта команда создает соединение с unreachable_host через “скрытое” соединение с reachable_host.

7) Скопировать файл с HOST1 на HOST2, через ваш HOST

ssh root@host1 “cd /somedir/tocopy/ && tar -cf – .” | ssh root@host2 “cd /samedir/tocopyto/ && tar -xf -”

Крайне удобный способ копирования файлов, если HOST1 и HOST2 не имеют прямых соединений.

8) Удаленный запуск любый GUI приложений

ssh -fX @
SSH должен иметь в конфигурации:

X11Forwarding yes # в Debian такое значение установлено по умолчанию

9) Создать постоянное подключение с машиной

ssh -MNf @

Установить в фоновом режиме постоянное SSH соединение с машиной. Плюс к этом добавьте следующие настройки в файл ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no
Все SSH соединения к этой машине будут идти через постоянный SSH socket. Это очень полезно, если вы постоянно используете SSH для синхронизации файлов, используя rsyns/sftp/cvs/svn, потому что при таких настройках не будут создаваться новые сокеты при выполнении каждой команды.

10) Подключить SCREEN по SSH

ssh -t remote_host screen -r

Напрямую подключить удаленную screen сессию (позволяет сэкономить на родительском процессе bash)

11) PORT KNOCKING!

knock 3000 4000 5000 && ssh -p user@host && knock 5000 4000 3000

Чтобы получить доступ к службе (ssh например) необходимо в определенном порядке постучаться на порты, а также чтобы закрыть доступ.
Необходимо установить knockd.
Пример конфига ниже.
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12) Удалить ключ для хоста

ssh-keygen -R

Крайне удобно использовать, если у вас на одном IP часто переустанавливаются системы.

13) Запускать более комплексные шеловые команды

ssh host -l user $(> ~/.ssh/authorized_keys”

Если вы используете Mac OS X или какой-то другой вариант unix системы, в которой нет ssh-copy-id, то данный вариант поможет вам скопировать ваш публичный ключ на удаленную машину.

14) Проверка скорости передачи данный по SSH

yes | pv | ssh $host “cat > /dev/null”

подключается к машине по SSH и отображает скорость передачи данных, перенаправляя всю передаваемую информацию в /dev/null

Должен быть установлен pv
Debian: ‘apt-get install pv’
Fedora: ‘yum install pv’

15) Установить удаленную screen сессию, к которой можно переподключаться

ssh -t user@some.domain.com /usr/bin/screen -xRR

Задолго до появление вкладок в терминалах, людям приходилось использовать screen для того чтобы открыть несколько шелов в одном терминале. В реалиях SSH screen позволяет нам использовать несколько шелов в одному SSH подключении. Если вы отсоединитесь с помощью «Ctrl-a d» или у вас порвется SSH, то все процессы запущенные на удаленной машине останутся работать и будут ждать вашего возвращения. Другие полезные команды screen: «Ctrl-a c» — открывает новый шел и «Ctrl-a a» — переключаться между шелами.
Также можете ознакомится с небольшим гайдом по screen: http://aperiodic.net/screen/quick_reference

16) Возобновить передачу файла по SCP

rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file

Данная команда может возобновить и продолжить прерваную передачу файла через SCP.
Необходимо иметь rsync на обоих сторонах.
rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote
или
rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local

17) Открыть вечную SSH сессию

autossh -M50000 -t server.example.com ‘screen -raAd mysession’

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

18) Сгенерировать и скопировать SSH ключ

ssh-keygen; ssh-copy-id user@host; ssh user@host

Этот набор команд позволяет вам легко и быстро организовать себе беспарольный доступ на удаленную машину. Будьте осторожны, если у вас уже есть пара ключей в вашем ~/.ssh/ каталоге на локальной машине, т.к. есть возможность, что ssh-keygen может их перезаписать.