2013-02-26 2 views
7

Я читал справочную страницу команды «SCP» в Linux, в конце концов, он сказалЗначение «около-атомной» передачи с использованием временных файлов?

«Никакая попытка не сделана на„ближний“атомарный перенос с использованием временных файлов».

Смутно я могу догадаться, что это такое, но может ли кто-нибудь четко сказать мне техническое определение этого предложения.

Спасибо, Пэдди

ответ

4

Atomic означало бы, что ничего не может прочитать или записать файл, пока УПП не закончил с ним. «Near-atomic» относится к обычной практике копирование файла во временное место (на целевой машине/диске), а затем перемещение в конечное местоположение. Операция перемещения намного быстрее, чем копия («почти атомная»), но она не обязательно атомальна в истинном смысле этого слова. Другой процесс все равно мог прочитать файл в несогласованном состоянии во время неатомного перемещения.

+0

Спасибо ответило на мой вопрос .... – paddy

+1

Дела о движении быть только вблизи атомным не обязательно правильно. По крайней мере, на Linux ходы гарантированно будут атомарными, если цель и место назначения находятся в одном разделе. В этом случае перемещение - это только изменение метаданных, так что полный файл появляется сразу в пункте назначения. См. Также другой ответ ниже. – LiKao

5

Атомная копия была бы такой, как Крэйг, чтобы использовать временный файл, а затем mv временный файл для предполагаемого адресата. Mv IS - источник и назначение атома, находящиеся в одном разделе. Только файлы с открытым файлом tmp будут доступны для чтения. rename() не является атомарным для файлов, которые перемещаются между разделами, поскольку данные должны быть скопированы.

Это предполагает, что вы scp'ing к системе UNIX, конечно :)