Перенесите коллекцию в папку подготовленного пользователя

LinuxBeginner
Практиковаться сейчас

Введение

Команда реставрации книг теперь использует отдельную принимающую учётную запись. Передайте Garden Atlas на подготовленный стол, затем обновите каталог и метод обработки, добавьте лист и удалите старый сформированный список. Получатель должен читать переданные тексты и запускать программу чтения.

Эта работа начинается независимо с подготовленными реквизитами и каталогами. Достаточно базового владения терминалом и локальных методов rsync из первой работы; SSH-идентификация, проверка узла и удалённые пути объясняются здесь. Команды и вымышленные книжные тексты остаются английскими.

Определите подготовленную принимающую учётную запись

На этом шаге вы подтвердите подготовленную SSH-идентификацию и передадите коллекцию настоящей принимающей учётной записи. Используйте Terminal. Эта независимая работа заново создаёт источник и приёмник первого издания и не использует файлы предыдущей работы.

Две учётные записи разделяют эту учебную среду и ядро. Они представляют две стороны переноса, а не две физические машины. labex владеет /home/labex/project/folder-move/old, а bindery — /home/bindery/incoming. В корне приёма уже есть собственная заметка и старый каталог.

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

cd /home/labex/project/folder-move
cat ssh/config

Host bindery-desk — клиентский псевдоним. Он выбирает пользователя bindery на 127.0.0.1, петлевом адресе той же среды. IdentityFile указывает выделенный закрытый ключ; не показывайте и не копируйте его содержимое. IdentitiesOnly yes выбирает эту идентификацию. UserKnownHostsFile указывает подготовленную закреплённую запись; StrictHostKeyChecking yes отклоняет неизвестный или изменённый узел. BatchMode yes завершает ошибку аутентификации, не ожидая пароля.

ssh-keygen -lf выводит отпечаток открытого ключа. Сравните значение SHA256: с отпечатком из данных подготовки:

ssh-keygen -lf ssh/known_hosts
cat ssh/host-fingerprint.txt

Хеши должны совпадать; подписи и комментарии могут различаться. Здесь доверенный файл подготовки задаёт ожидаемую идентичность; для настоящего переноса нужен независимо полученный доверенный отпечаток администратора. Один ключ, собранный из недоверенной сети, не создаёт доверия. При несовпадении остановитесь; не удаляйте закреплённую запись и не отключайте проверку узла.

-F ssh/config выбирает эту отдельную клиентскую конфигурацию, не заменяя обычные настройки SSH. Команда в одинарных кавычках передаётся получателю; пути в ней удалённые. Точки с запятой разделяют команды, выполняемые по порядку в удалённой оболочке. Перед передачей подтвердите учётную запись, домашний каталог, rsync и фактическое назначение:

ssh -F ssh/config bindery-desk 'whoami; pwd; rsync --version; ls -la /home/bindery/incoming; cat /home/bindery/incoming/receiver-note.txt'
rsync --version

Учётная запись — bindery, домашний каталог — /home/bindery, обе стороны показывают rsync. Заметка содержит прежнюю инструкцию о западной полке. Успешное соединение с неправильной учётной записью не считается корректным переносом. При отказе в доступе проверяют выбранную идентификацию и права получателя; при предупреждении об изменённом узле — доверенную конечную точку. Добавление небезопасных параметров не исправляет ни одну из этих проблем.

Для rsync параметр -e 'ssh -F ssh/config' выбирает SSH-транспорт. Назначение bindery-desk:/home/bindery/incoming/collection/ использует настроенную учётную запись и путь на получателе. Именно двоеточие делает назначение удалённым; локальная папка с именем remote не использует SSH. Сохраните уже изученные завершающую косую черту источника и фильтр:

rsync -ani -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -ai -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'

Прочитайте каталог Garden Atlas и обработку с бумажными шарнирами из принимающей учётной записи. Это реальное удалённое использование переданной программы со скрытой конфигурацией и правом исполнения. После команды вы остаётесь у локального приглашения; разовая SSH-команда не переносит локальный терминал в удалённый домашний каталог.

Завершите первую удалённую передачу

На этом шаге вы передадите отдельный сформированный список и через SSH прочитаете как собственные данные получателя, так и управляемые источником данные. Продолжайте в Terminal, в /home/labex/project/folder-move.

Синхронизируйте только управляемый каталог generated/. Не включайте личные кадровые заметки в передачу:

rsync -ani -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -ai -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/receiver-note.txt; /home/bindery/incoming/collection/read-book'

Ожидаются Garden Atlas | desk edition 1, неизменённая заметка получателя и пригодная программа чтения. Архивный режим сохраняет исполняемый бит, но принятые файлы принадлежат принимающей учётной записи; произвольных исходных владельцев она сохранить не может. Два управляемых каталога готовы без зеркалирования корня приёма.

Если прежняя передача без фильтра включила просмотр, сначала исследуйте через SSH конкретный лишний файл. Удалите только этот временный файл методом rm из локальной работы. Не удаляйте incoming или заметку получателя. Фильтр предотвращает последующие передачи, но не очищает уже скопированный файл.

Примените следующее издание в управляемой области

На этом шаге вы передадите второе издание и удалите только старый сформированный список. Оставайтесь в Terminal, в /home/labex/project/folder-move. Пути назначения после двоеточия относятся к принимающей учётной записи.

cat принимает несколько имён файлов и выводит их в указанном порядке. Прочитайте предоставленное следующее издание до замены редактируемого источника:

cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt

В каталоге теперь 48 листов, обработка использует льняные шарниры и появилось дополнение. cp -a копирует рекурсивно с сохранением атрибутов. revision/. означает всё содержимое, включая скрытые файлы. Оно накладывает предоставленные изменения на old/, но не удаляет запись, отсутствующую в редакции. Стол явно выводит из использования old/generated/obsolete.txt, поэтому удалите только этот указанный исходный файл. rm удаляет файл навсегда; не расширяйте путь.

cp -a revision/. old/
rm old/generated/obsolete.txt

Обычно rsync определяет изменение данных по размеру и времени модификации. -c добавляет сравнение контрольных сумм содержимого. Файлы малы, поэтому затраты невелики; это также обнаруживает изменения равного размера с сохранёнными отметками времени. История версий и резервная копия не создаются. Выполните пробный запуск, затем обновите коллекцию:

rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -aci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/

Предварительный результат коллекции должен показывать два обновлённых текста и новое дополнение без временных просмотров. Также возможны изменения только атрибутов.

--delete удаляет записи назначения, которых нет в источнике, внутри выбранного каталога синхронизации. Здесь полностью управляется только generated/, а не корень приёма. Сначала выполните пробное удаление, найдите *deleting obsolete.txt, затем примените точно ту же область:

rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -aci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/collection/texts/addendum.txt /home/bindery/incoming/receiver-note.txt'
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'

Вы должны прочитать второе издание списка, новый лист, исходную заметку и обновлённый вывод программы чтения. Зеркалирование всего корня с --delete может стереть заметку. Никогда не используйте его для удаления этого единственного управляемого списка.

Повторите те же пробные запуски:

rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/

Изменений файлов оставаться не должно. Повторение безопасно в объявленных границах, но последующее удаление в источнике всё равно потребует сознательно решить, какой каталог назначения управляется источником. Только rsync не восстановит исходное издание; используйте отдельную резервную копию, когда нужна история.

Резюме

Вы передали пригодную для работы коллекцию, сохранили скрытую конфигурацию и права программы чтения, а также заметку принимающего стола. Вторая синхронизация обновила управляемые файлы и удалила устаревший список только в объявленной области. Синхронизация имеет направление; она не создаёт резервную копию с историей версий и не объединяет конфликты.