список rsync файлов в подкаталогах к удаленному серверу и удаляет посторонний

То, что делает Вас, подразумевало под “несобственным компонентом”? Нет четкого определения “установленного по умолчанию”, так как каждое распределение имеет свой собственный набор по умолчанию установленных пакетов, и очень легко настроить тот набор.

Потоки POSIX являются частью GNU libc, который является фундаментальной частью любого, не встроил системы Linux (существуют замены для маленьких систем, я думаю, что главные также включают поддержку pthread). Само ядро Linux включает поддержку потоков. Это не точно pthread, но различие между тем, что поддерживается одним только ядром и что поддерживается стандартной библиотекой сверху ядра, редко полезно.

OpenMP проникает через GOMP, который является частью gcc. В отличие от стандартной библиотеки (Glibc), возможно иметь нормальную систему Linux без установленного libgomp.

Существует несколько реализаций MPI для Linux, включая MPICH и OpenMPI. Существуют нормальные системы Linux без тех, также.

Все в конечном счете реализовано сверх системных вызовов, т.е. функциональности, обеспеченной ядром. MP, MPI и другие библиотеки реализованы с точки зрения системных вызовов управления процессами, межпроцессного взаимодействия (каналы, сокеты, общая память, …) и многопоточность (блокировки, условия, …).

3
19.10.2012, 15:56
3 ответа

Можно сделать это использование

rsync -av --delete --update --include-from=LISTFILE   -f 'hide,! */' src/ dst

где LISTFILE файл, который содержит все файлы, которые должны синхронизироваться с целевым каталогом. Если Ваши файлы не изменяются, можно использовать --ignore-existing вместо --update. Прочитайте rsync страницу руководства для деталей.

1
27.01.2020, 21:32

Существует, много удаляют опции, которые можно использовать с rsync для удаления файлов на цели, если они не, существуют в источнике:

        --del                   an alias for --delete-during
        --delete                delete extraneous files from dest dirs
        --delete-before         receiver deletes before xfer, not during
        --delete-during         receiver deletes during the transfer
        --delete-delay          find deletions during, delete after
        --delete-after          receiver deletes after transfer, not during

Кроме того, можно использовать --ignore-existing для пропуска копирования файлов, которые существуют в цели:

        --ignore-existing       skip updating files that exist on receiver

И удалить пустые каталоги необходимо использовать:

    -m, --prune-empty-dirs      prune empty directory chains from file-list

Так, команда

rsync -av --prune-empty-dirs --delete-delay --ignore-existing src/ dst

сделает то, что Вы ищете, я предполагаю

0
27.01.2020, 21:32

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

rsync -a --delete-excluded --include-from=LISTFILE --exclude="*" src/ dst

Я не уверен, почему определенные другие опции предлагаются :P. Самый "интересный" --ignore-existing. Может стоить удостовериться, что Вы понимаете более дружественные оптимизации сначала - -a, или -u.

Похоже, что Вы уже используете -a, который подразумевает -t, который позволяет rsync оптимизировать по умолчанию. "Rsync находит файлы, которые должны быть переданы с помощью алгоритма "быстрой проверки" (по умолчанию), который ищет файлы, которые изменились в размере или в измененное в последний раз время". Если Вы не используете -a, часто возможно использовать"-u или --update - пропустите файлы, которые являются более новыми на получателе".

Если Вы хотите сравнить различия с отключенной оптимизацией "быстрой проверки", можно использовать --checksum. (Также полезно, если Вы хотите насильственно повторно синхронизировать все существующие файлы в какой-то момент в случае повреждения. Включить -v и Вы сможете видеть, какие файлы должны были быть переписаны).

0
27.01.2020, 21:32

Теги

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