Некоторые запутанные понятия: ptmx и tty

В первый раз нет реальной разницы между scp (скопируйте ssh ) и rsync .

При последующих запусках rsync не копирует уже существующие файлы.

rsync -avH ~/Downloads  username@remotehost:Downloads
  • -a для всех файлов
  • -v для подробных
  • -H для «просто определите символические ссылки и сделайте правильные вещи»
  • , затем пути источника и назначения. Вы можете использовать подстановочные знаки в источнике или просто синхронизировать весь каталог.

Другие полезные флаги включают:

  • - удалить , чтобы удалить файлы в месте назначения, которые больше не существуют в источнике.
  • - пробный прогон для тестирования - очень удобно в сочетании с - удалить .

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

В конце выполнения rsync сообщит вам, во сколько раз он выполнял простую копию заново.

1
12.06.2018, 17:43
1 ответ

/dev/ptmxявляется стандартным, /dev/pts/ptmxдобавляется для программных контейнеров (Docker и т. д. )и других случаях, когда вам нужно несколько экземпляров файловой системы devpts.

Природа узлов устройств

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

Например, если у вас есть соответствующие привилегии, вы можете использовать mknodдля создания узла символьного устройства со старшим 1 и младшим 3 с любым именем в любой файловой системе в стиле Unix -и -, если только файловая система имеет параметр монтирования nodev-, она будет вести себя точно так же, как /dev/null, потому что во всех смыслах и целях она будет другой реализацией /dev/null.

Точно так же и /dev/pts/ptmx, и /dev/ptmxявляются символьными устройствами со старшим номером 5 и младшим номером 2. Таким образом, они обеспечивают доступ к точно таким же функциям в ядре.

$ ls -l /dev/ptmx /dev/pts/ptmx
crw-rw-rw- 1 root tty  5, 2 Jun 12 20:14 /dev/ptmx
c--------- 1 root root 5, 2 Jun 12 12:26 /dev/pts/ptmx

Тип символа узла устройства (или блока )и старший и младший номера устройства вместе определяют, с каким драйвером устройства ядра взаимодействует этот узел устройства. Ядро не заботится об именах -, оно предоставляет имена по умолчанию для udev,но вы можете полностью изменить схему именования устройств, если хотите. При необходимости вы можете создавать узлы устройств за пределами /dev.

В Debian 9 для разрешения /dev/pts/ptmxпо умолчанию установлено значение 000, поэтому предполагается, что оно не будет использоваться. Аналогично в RHEL 7.5.

Комментарий в исходном коде ядра 4.17 говорит:

/*
 * ptmx is a new node in /dev/pts and will be unused in legacy (single-
 * instance) mode. To prevent surprises in user space, set permissions of
 * ptmx to 0. Use 'chmod' or remount with '-o ptmxmode' to set meaningful
 * permissions.
 */

«режим одиночного экземпляра -» относится к использованию в качестве системы, соответствующей стандартам UNIX98 и Single Unix Specification v1. Поэтому очень важна обратная совместимость.

Возможность использования нескольких экземпляров -для devptsбыла разработана для поддержки контейнеров. В этом можно убедиться, прочитав старые версии <Linux kernel source>/Documentation/filesystems/devpts.txtот 2009 года или около того :

.

To support containers, we now allow multiple instances of devpts filesystem, such that indices of ptys allocated in one instance are independent of indices allocated in other instances of devpts.

To preserve backward compatibility, this support for multiple instances is enabled only if:

  • CONFIG_DEVPTS_MULTIPLE_INSTANCES=y, and
  • '-o newinstance' mount option is specified while mounting devpts

IOW, devpts now supports both single-instance and multi-instance semantics.

Когда используются контейнеры, они обычно инициализируют совершенно новое пространство имен для псевдо -TTY и могут монтировать другой экземпляр файловой системы devptsвнутри контейнера (, это можно даже опустить, если псевдо -] Поддержка TTY внутри контейнера не требуется ). Наличие записи ptmxв файловой системе devptsможет быть полезно для минимизации работы, необходимой для инициализации среды контейнера in -.

5
27.01.2020, 23:32

Теги

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